IOS:NSKnownKeyDictionary1错误

IOS:NSKnownKeyDictionary1错误,ios,nsmanagedobject,Ios,Nsmanagedobject,我有一个对象selectedActivity,定义如下: @property (strong, nonatomic) Activities *selectedActivity; 在我需要使用它时,以以下方式注销: { actname = "Running"; aid = 23; } Activities对象是一个NSManaged对象,其.h文件如下所示 @interface Activities : NSManagedObject @property (nonatomic

我有一个对象selectedActivity,定义如下:

@property (strong, nonatomic) Activities *selectedActivity;
在我需要使用它时,以以下方式注销:

{
    actname = "Running";
    aid = 23;
}
Activities对象是一个NSManaged对象,其.h文件如下所示

@interface Activities : NSManagedObject

@property (nonatomic, retain) NSString * actname;
@property (nonatomic, retain) NSNumber * aid;
@end
我正在尝试将一个对象属性放置在变量中,以便使用以下方法处理它:

 NSNumber *aid = _selectedActivity.aid;
但是,上面的一行给出了以下错误消息:

[NSKnownKeysDictionary1 aid]: unrecognized selector sent to instance 0x147842fb0
有人能解释这个错误以及如何修复它吗

谢谢你的建议

更新: 所选活动的设置

-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {

     _selectedActivity =([_activities objectAtIndex:row]);
    NSLog(@"selectedActivity in pickerview%@",_selectedActivity);
}
//activities in .h file
    @property (strong, nonatomic) NSArray *activities;
//setting of activities
 self.activities= [self getActivities];

//method that gets activities
- (id) getActivities{
    NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"Activities"];
     NSSortDescriptor *sort = [NSSortDescriptor sortDescriptorWithKey:@"created" ascending:NO];
    [fetchRequest setSortDescriptors:@[sort]];
    NSError *error      = nil;
    self.managedObjectContext = [Model sharedInstance].managedObjectContext;

    NSArray *results    = [self.managedObjectContext executeFetchRequest:fetchRequest
                                                                   error:&error];
      NSMutableArray *mutableresults = [results mutableCopy];
    [mutableresults removeObjectIdenticalTo:[NSNull null]];

    return mutableresults; 
}

结果就像一本字典

而不是通常的
NSManagedObject
样式的值检索:

目标-C

NSString*actname=\u selectedActivity.actname;
NSNumber*aid=\u selectedActivity.aid;

迅捷的

让actname:String=\u selectedActivity.actname
let-aid:Int=\u selectedActivity.aid

使用
NSDictionary
样式的值检索,如下所示:

目标C:

NSString*actname=[[您选择的活动值forkey:@“actname”];
NSNumber*aid=[[u selectedActivity valueForKey:@“aid”]intValue];

Swift(从3.0.1开始测试)

_选择活动(forKey:“actname”)为!一串
_选择Activity.value(forKey:“aid”)作为!Int

结果就像字典一样

而不是通常的
NSManagedObject
样式的值检索:

目标-C

NSString*actname=\u selectedActivity.actname;
NSNumber*aid=\u selectedActivity.aid;

迅捷的

让actname:String=\u selectedActivity.actname
let-aid:Int=\u selectedActivity.aid

使用
NSDictionary
样式的值检索,如下所示:

目标C:

NSString*actname=[[您选择的活动值forkey:@“actname”];
NSNumber*aid=[[u selectedActivity valueForKey:@“aid”]intValue];

Swift(从3.0.1开始测试)

_选择活动(forKey:“actname”)为!一串
_选择Activity.value(forKey:“aid”)作为!Int

显示为所选活动指定值的代码。显然,它是一个字典,而不是
活动的实例
显示您为
selectedActivity
赋值的代码。显然,这是一本词典,而不是
活动的实例