Ios 设置NSArray属性时无法识别选择器
我有一个返回数组的方法:Ios 设置NSArray属性时无法识别选择器,ios,objective-c,Ios,Objective C,我有一个返回数组的方法: -(NSArray*)fetchStoresFromContext { NSManagedObjectContext *context = [RKManagedObjectStore defaultStore].mainQueueManagedObjectContext; NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"Store"]; NS
-(NSArray*)fetchStoresFromContext {
NSManagedObjectContext *context = [RKManagedObjectStore defaultStore].mainQueueManagedObjectContext;
NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"Store"];
NSSortDescriptor *descriptor = [NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES];
fetchRequest.sortDescriptors = @[descriptor];
NSError *error = nil;
NSArray *fetchedObjects = [context executeFetchRequest:fetchRequest error:&error];
return fetchedObjects;
}
如果创建一个新的NSArray并按如下方式调用此方法:
NSArray *test = [self fetchStoresFromContext];
一切正常。[测试计数]返回6
我拥有以下财产:
@property (nonatomic, strong) NSArray* stores;
如果我调用\u stores=[self-fetchStoresFromContext]
我会得到以下错误:
-[__NSCFNumber length]: unrecognized selector sent to instance 0x15e3c2f0
这是怎么回事?属性是NSArray,对象也是NSArray,那么我为什么会遇到此问题?此错误意味着您的代码正在传递一个NSNumber,而被调用的代码需要一个NSString或其他具有length方法的对象 不够清楚…执行[\u存储计数]时是否引发错误 如果是,请尝试在计数前实例化数组:
_stores = [[NSArray alloc] initWithArray:[self fetchStoresFromContext]];
该错误意味着您的代码正在传递一个NSNumber,而被调用的代码需要一个NSString或其他具有length方法的对象 不够清楚…执行[\u存储计数]时是否引发错误 如果是,请尝试在计数前实例化数组:
_stores = [[NSArray alloc] initWithArray:[self fetchStoresFromContext]];
您的
fetchStoresFromContext
似乎返回了一个NSNumber
,而不是NSArray
@我第一次遇到错误时签入的顺磁性羊角面包<代码>NSLog(@“类名:%@”,NSStringFromClass([[self-fetchStoresFromContext]Class])返回\u NSArrayI
Set@property(非原子,强)NSArray*存储@gottlieb我试过了,得到了同样的错误当你调用这个方法时,你得到了那个错误吗?或者当您稍后在ivar上打电话时?您的fetchStoresFromContext
似乎返回了一个NSNumber
,而不是NSArray
@我第一次遇到错误时检查到的顺磁性牛角面包<代码>NSLog(@“类名:%@”,NSStringFromClass([[self-fetchStoresFromContext]Class])返回\u NSArrayI
Set@property(非原子,强)NSArray*存储@gottlieb我试过了,得到了同样的错误当你调用这个方法时,你得到了那个错误吗?或者当你稍后打电话给你的ivar时?