gpt4 book ai didi

ios - 如何获取 NSManagedObjectId 并检索数据

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

我有一个名为 HomeTableViewController 的 TableViewController,它加载了来自 Core Data 数组的数据。我试图从选定的单元格中获取对象 ID,如下所示:

//Fetch Entity

NSManagedObjectContext *context = [self managedObjectContext];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"OwedMoney"];

//Create an array that stores the contents of that entity

youOweArray = [[context executeFetchRequest:fetchRequest error:nil] mutableCopy];

//Create managedObjectId

NSManagedObject *YouOweData = [youOweArray objectAtIndex:0];
NSManagedObjectID *moID = [YouOweData objectID];

//Successfully got the managedObjectId

NSLog(@"This is the id %@", moID);

我能够获得 managedObjectId。但困难的部分来了。现在我想遍历我的数组并获取所有对象。然后我想获取等于所选单元格的对象并访问它的 bool 值“付费”。我是这样做的:

 BOOL Found =  NO;
OwedMoney *OwedObject;
NSManagedObjectID *OwedId = [OwedObject objectID];

for (OwedMoney *OwedObject in youOweArray)
{

NSLog(@"%@", OwedObject);
if (OwedId == moID)
{
Found = YES;
break;
}

}

if (Found == YES)
{

BOOL isPaid = YES;
OwedMoney *Object = OwedObject;
Object.paid = [NSNumber numberWithBool:isPaid];

NSLog(@"Is it paid: %@",Object.paid? @"Yes":@"No");
}

虽然当我运行应用程序时,Found 永远不会等于 YES。这意味着我的对象 ID 不匹配。我想知道如何找到选定的表格 View 单元格,从中获取 NSManagedObjectId,然后访问它的属性。

感谢所有帮助,提前致谢。

最佳答案

您正在遍历数组,但从未真正将 OwedId 更改为您在数组中查看的项目。这应该有效:

BOOL Found =  NO;
OwedMoney *Object;


for (OwedMoney *OwedObject in youOweArray)
{
NSManagedObjectID *OwedId = [OwedObject objectID];

NSLog(@"%@", OwedObject);
if (OwedId == moID)
{
Found = YES;
Object = OwedObject;
break;
}

}

if (Found)
{

BOOL isPaid = Found;
Object.paid = [NSNumber numberWithBool:isPaid];

NSLog(@"Is it paid: %@",Object.paid.boolValue? @"Yes":@"No");
}

关于ios - 如何获取 NSManagedObjectId 并检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21652885/

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