访问ios中@property的setMethod

经过几个小时的教程和谷歌搜索,我知道当我们在头文件中定义一个属性时,编译器会自动生成setter和getter这里是一个例子:
“example.h文件”

@property(strong,nonatomic) NSNumber *test; 

example.m

 [self.test setTest [@"3"]]; 

所以我想要的是访问此方法来检查方法声明,这就是我想要的原因

完整场景

 @interface exampleController () { int example; } 

//这里是一个实例变量,用于在运行应用程序时保存值,我从字典中获取此值,然后将示例变量的值保存到核心数据

这是实体类

exampleEntity.h

  @property(strong,nonatomic) NSNumber *example; 

exampleEntity.m

 @dynamic example; 

//因为实例变量是int,我们需要将它强制转换为NSNumber,所以我按照这个链接

 [entry setExample : [NSNumber numberWithInt:example]]; 

最后在运行此代码后,我将进入此exception:

***由于未捕获的exception’NSInvalidArgumentException’而终止应用

完整代码

  #import "viewController.h" @interface viewController () { int example; } - (void)viewDidLoad { gettingTheExampleValueFromDictionary(); } -(void)gettingTheExampleValueFromDictionary() { NSDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:requestHandler options:0 error:&jsonParsingError]; example = [[dictionary objectForKey:@"exampleId"] intValue]; } - (IBAction)doneButton:(id)sender { [self insertDataToCoreData]; [self dismissSelf]; } -(void)insertDataToCoreData { CoreData *coreDataStack = [CoreData defaultStack]; ExampleEntity *entry = [NSEntityDescription insertNewObjectForEntityForName: @"ExampleEntity" inManagedObjectContext:coreDataStack.managedObjectContext]; [entry setExample :[NSNumber numberWithInt:example]]; // here we go into the error // [coreDataStack saveContext]; } @end // and if you ask me for entity class here is: #import  @interface ReservationEntity : NSObject @property (nonatomic,strong) NSNumber *example; @end #import "exampleEntity.h" @implementation exampleEntity @dynamic example; @end // and if you ask me for core data here is the pic needed // 

核心数据

  // the configuration of xcdatamodel 

xcdatamodel的配置

在你的情况下你应该改变:

 @dynamic example; 

 @synthesize example; 

或者只是删除代码行@dynamic示例。

因为@synthesize为属性生成getter和setter,而@dynamic意味着getter&setter是在运行时创建的(例如NSManagedObject的子类)