gpt4 book ai didi

ios - 如何获取didChangeObject :(id)anObject (NSfetchedResultsController)中对象的值

转载 作者:行者123 更新时间:2023-11-29 03:54:25 25 4
gpt4 key购买 nike

我如何访问此 fetchedResultsController 委托(delegate)方法中的对象实际值?

我想根据对象的值设置要删除/更改的行的索引路径部分,因为表有多个数据源

- (void)controller:(NSFetchedResultsController *)controller didChangeObject:(id)anObject
atIndexPath:(NSIndexPath *)indexPath forChangeType:(NSFetchedResultsChangeType)type
newIndexPath:(NSIndexPath *)newIndexPath
{
....get objects value, e.g. myEntity.city
}

现在我知道该对象将始终属于 myEntity 类(至少最终不确定“anObject”到底指的是什么),但显然当我想设置 myEntity *anEntity = anObject; 的实例时编译器会提示。

我的解决方法是将每个部分的数据放入数组中,并在tableView:commitEditingStyle:forRowAtIndexPath: 我知道哪个部分被调用,我只需要访问indexpath.row。缺点是我必须在每次更改后重新加载数组,并且不能直接使用 fetchedResultsController。

编辑:接受的答案效果很好,这个快捷方式似乎也适合我的目的:

NSString *aString = [anObject valueForKey:@"city"]; 

最佳答案

编译器确实会提示,但这只是一个警告,因为你没有告诉它会发生什么。很简单:

myEntity *anEntity = (myEntity *)anObject;

也就是说,您确实需要确保它是正确的类,因此添加一点保护是值得的:

if ([anObject isKindOfClass:[myEntity class]) {
myEntity *anEntity = (myEntity *)anObject;
// do stuff
} else {
NSLog(@"Panic / cry / plead");
}

关于ios - 如何获取didChangeObject :(id)anObject (NSfetchedResultsController)中对象的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16680769/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com