IOS:NSKnownKeyDictionary1错误
我有一个对象selectedActivity,定义如下:IOS:NSKnownKeyDictionary1错误,ios,nsmanagedobject,Ios,Nsmanagedobject,我有一个对象selectedActivity,定义如下: @property (strong, nonatomic) Activities *selectedActivity; 在我需要使用它时,以以下方式注销: { actname = "Running"; aid = 23; } Activities对象是一个NSManaged对象,其.h文件如下所示 @interface Activities : NSManagedObject @property (nonatomic
@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
赋值的代码。显然,这是一本词典,而不是活动的实例