- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在关注此站点的 Core Data 教程 http://www.appcoda.com/introduction-to-core-data/
但是我收到以下错误:
2016-06-23 17:55:11.905 MyStore[6020:596233] -[NSAsynchronousFetchResultmutableCopyWithZone:]: 无法识别的选择器发送到实例 0x7f8950e12eb0
我下了一个断点,错误似乎来自以下过程。
- (void) viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
//Fetch the devices from the persistent store.
NSManagedObjectContext *managedObjectContext = [self managedObjectContext];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"Device"];
self.devices = [[managedObjectContext executeRequest:fetchRequest error:nil] mutableCopy]; //error here
[self.tableView reloadData];
}
我将属性“devices”声明为 NSMutableArray。
我们将不胜感激任何类型的帮助。
最佳答案
所以我在按照程序进行时使用了不正确的方法。
我本应使用的方法是 executeFetchRequest,但错误地使用了 executeRequest。第一个确实返回 NSArray,但另一个返回 NSPersistentStoreResult。
这是方法。
- (nullable NSArray *)executeFetchRequest:(NSFetchRequest *)request error:(NSError **)error;
- (nullable __kindof NSPersistentStoreResult *)executeRequest:(NSPersistentStoreRequest*)request error:(NSError **)error NS_AVAILABLE(10_10, 8_0);
感谢 Volodymyr 的帮助,我能够检查我返回的对象确实是我期望的类型,但不是,从那里我可以改变方法,但后来我发现返回的对象是一个更复杂的对象,并且有一个我可以使用的 NSArray 属性。
这是我的测试代码:)
- (void) viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
//Fetch the devices from the persistent store.
NSManagedObjectContext *managedObjectContext = [self managedObjectContext];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"Device"];
id whatAreYou = [managedObjectContext executeRequest:fetchRequest error:nil];
NSLog(@"%@", [whatAreYou class]); // turns out you are a NSPersistentStoreResult
// lucky for me you are have finalResult property that returns an NSArray. :)
self.devices = [[whatAreYou finalResult] mutableCopy]; //no more errors here :)
[self.tableView reloadData];
}
非常感谢您的帮助。从现在开始,我将检查对象类型添加到我的调试工具中:)
关于ios - 无法识别的选择器 mutableCopyWithZone,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38002692/
我正在关注此站点的 Core Data 教程 http://www.appcoda.com/introduction-to-core-data/ 但是我收到以下错误: 2016-06-23 17:55
我读了其他一些关于它的主题,但我仍然迷路了。 我想创建两种对象,一种是只有“只读”属性的不可变对象(immutable对象),另一种是只有“读写”属性的可变对象。 我们称它们为 EXCar 和 EXM
我试图制作一个包含 5 个实例变量的行星对象的 mutableCopy(其中一个是字符串文字的 NSMutableArray。我的问题是我不确定如何将 newPlanet>data 设置为 self>
我创建了一个符合 NSCopying 的自定义类和NSMutableCopying . 我添加了 -copyWithZone: 的实现和-mutableCopyWithZone: ,但每当我打电话 -
处理 JSON 数据并从字典中提取图像并将图像添加到数组 NSURL *imageurl=[NSURL URLWithString:(NSString *) Dictionry[@"product
我是一名优秀的程序员,十分优秀!