2016-07-01 19 views
1

Ich habe an einer App gearbeitet, die eine Auflistungsansicht verwendet, und ich erstelle eine benutzerdefinierte Ansichtszelle (Kategorieansichtszelle), die eine Unterklasse von UICollectionViewCell ist. Ich wollte auch eine Unterklasse der benutzerdefinierten Ansichtszelle (LinkCell) erstellen. Ich habe jetzt schon eine Weile gesucht, und ich kann nicht finden, warum ich die Störung erhalten „nicht Schnittstelle Erklärung‚CategoryViewCell‘, übergeordnete Klasse von‚LinkCell‘gefunden“Objective-c-Fehler mit der Unterklasse, die keine Superklassenschnittstelle findet

//CategoryViewCell.h 
#import <UIKit/UIKit.h> 
#import "ViewController.h" 

@class ViewController; 

@interface CategoryViewCell : UICollectionViewCell 

@property (weak, nonatomic) IBOutlet UIImageView *image; 

@property (nonatomic) ViewController *parentView; 
@property (nonatomic) NSString *cellName; 

@end 
//CategoryViewCell.m 
#import "CategoryViewCell.h" 

@implementation CategoryViewCell 

@end 

//LinkCell.h 
#import <UIKit/UIKit.h> 
#import "CategoryViewCell.h" 
#import "PJP Webview.h" 

@interface LinkCell : CategoryViewCell //Error here 

@property (nonatomic) NSString *username; 
@property (nonatomic) NSString *password; 
@property (nonatomic) NSString *urlToLink; 
@property (nonatomic) NSString *urlToLinkS; 
@property (nonatomic) NSString *urlToLinkP; 
@property (nonatomic) NSString *urlToLinkT; 
@property (nonatomic) NSString *body; 

-(IBAction)celltapped:(id)sender; 

@end 
//LinkCell.m 
#import "LinkCell.h" 

@implementation LinkCell 

@synthesize urlToLink, username, password, image, cellName, parentView; 

-(IBAction)celltapped:(id)sender { 

    NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; 
    NSString *launchString = [NSString stringWithFormat:@"hasLaunched%@Before", self.cellName]; 
    BOOL hasLaunchedCellBefore = [userDefaults boolForKey:launchString]; 
    if (!hasLaunchedCellBefore) { 
     // first time launch code 

     hasLaunchedCellBefore = TRUE; 
     [userDefaults setBool:hasLaunchedCellBefore forKey:launchString]; 
     [userDefaults synchronize]; 

     PJP_Webview *vc = [parentView.storyboard instantiateViewControllerWithIdentifier:@"vc"]; 
     vc.currentCell = self; 
     [parentView presentViewController:vc animated:YES completion:nil]; 
    } 
    else { 

    } 
} 

@end 

Könnte jemand bitte zeigen Sie mir, wo mein Fehler ist?

+1

haben Sie versucht, den Projektordner zu säubern (cmd + shift + k)? dann wieder bauen. – Joshua

+0

@Joshua, ja ich habe, und wenn ich es reinige der Fehler verschwindet, aber sobald ich es baue der Fehler kommt zurück – SharkbaitWhohaha

Antwort

1

ich es einfach gelöst; ViewController.h verwendet die CategoryViewCell und ich importierte die .h und verwendete die @ Klasse für die ViewController-Eigenschaft auf CategoryViewCell.h. Nur die @klasse war notwendig; Ich denke, eine Art zirkuläre Abhängigkeit wurde geschaffen. Der komische Teil war, dass CategoryViewCell.h die Fehler nicht hatte, seine Unterklasse tat es. Danke an alle, die geantwortet haben!

0

Wählen Sie die Datei CategoryViewCell.m und prüfen Sie, ob sie zum Ziel hinzugefügt wurde oder nicht.

enter image description here

+0

Header-Dateien werden nicht zu Zielen hinzugefügt. – Avi

+0

Ihr Problem ist gelöst oder nicht? – Proton

+0

@Proton, Entschuldigung für die verzögerte Antwort. CategoryViewCell.m hat die Zielmitgliedschaft, die das Projektziel auswählt. Es funktioniert aber immer noch nicht. – SharkbaitWhohaha