Cerco di estendere NSManagedObject. Usando XCode ho creato MyBox.m e MyBox.h (direttamente dal file xcdatamodel).[NSManagedObject sayHello]: selettore non riconosciuto inviato all'istanza 0x
Poi ho modificato questi file:
#import <Foundation/Foundation.h>
#import <CoreData/CoreData.h>
@interface MyBox : NSManagedObject
@property (nonatomic, retain) NSDate * endDate;
@property (nonatomic, retain) NSNumber * globalId;
@property (nonatomic, retain) NSString * name;
@property (nonatomic, retain) NSDate * startDate;
-(NSString *)sayHello;
@end
e
#import "MyBox.h"
@implementation MyBox
@dynamic endDate;
@dynamic globalId;
@dynamic name;
@dynamic startDate;
-(NSString *)sayHello {
return @"hello";
}
@end
posso recuperare tutti myBoxes
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription
entityForName:@"MyBox" inManagedObjectContext:context];
[fetchRequest setEntity:entity];
NSMutableArray *myBoxes = [context executeFetchRequest:fetchRequest error:&error];
ma poi io chiamo
MyBox *myBox = [myBoxes objectAtIndex:indexPath.row];
[myBox sayHello];
compila, ma poi ho capito
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSManagedObject sayHello]: unrecognized selector sent to instance 0x8e73fc0'
Se leggo solo un valore come
NSLog(@"%@", myBox.name);
funziona
ho trovato problemi simili qui, ma nessuna soluzione. Grazie per il vostro aiuto.
Probabilmente hai dimenticato di impostare la classe dell'entità su 'MyBox' nell'editor Coredata. – Alladinian
Ho impostato Entity-> Name = Entity-> Class = "MyBox" nell'editor di Coredata. Devo impostare alcune altre proprietà? – stefanr
Hmm è strano. No, dovrebbe essere sufficiente ... Hai forse più versioni? – Alladinian