ich einige Protokolle wie diese:Property erfordern Verfahren in NSManagedObject Unterklasse definiert wird
@protocol UserProtocol <NSObject>
@property (nonatomic, strong) NSNumber *uid;
@property (nonatomic, strong) NSString *name;
@property (nonatomic, strong) NSNumber *rating;
@end
Dann habe ich einige aktuelle Klasse, die implementiert, dass:
@interface User : NSObject <UserProtocol>
@end
Jetzt brauche ich eine andere Implementierung, die verwendet CoreData
so erstellt CDUser
Einheit (Xcode
erzeugt auch Kategorie dafür):
// CDUser.h
@interface CDUser : NSManagedObject <UserProtocol>
@end
// CDUser+CoreDataProperties.h
@interface CDUser (CoreDataProperties)
@property (nullable, nonatomic, retain) NSNumber *uid;
@property (nullable, nonatomic, retain) NSString *name;
@property (nullable, nonatomic, retain) NSNumber *rating;
@end
// CDUser+CoreDataProperties.m
@implementation CDUser (CoreDataProperties)
@dynamic uid;
@dynamic name;
@dynamic rating;
@end
CDUser
implementiert tatsächlich UserProtocol
aber ich habe Warnungen wie so für alle Eigenschaften:
Property 'uid' requires method 'uid' to be defined - use @synthesize, @dynamic or provide a method implementation in this class implementation
Wenn ich @dynamic uid;
wieder hinzufügen in CDBook.m
dann bekomme ich folgende Fehlermeldung:
Property declared in category 'CoreDataProperties' cannot be implemented in class implementation
Wie kann ich diese lösen Warnungen auf angemessene Weise?
Dieser Code wird automatisch von Xcode generiert, so dass bei der nächsten Generation Ihre Protokolldefinitionen entfernt werden. – eXhausted