iphone - CoreData 中保存的字符串返回 <null> 和字符串。为什么?

标签 iphone objective-c ios core-data

您好,我正在将来自数据库的值保存在 MultableArray 中,然后保存在 CoreData 中:

 NSMultableArray *mutary = [[NSMultableArray alloc] init];
      NSManagedObjectContext *context = [app managedObjectContext];
    for(int n=0; n<[AttributeArray count]; n++)
    {

    [mutary addObject:[[AttributeArray objectAtIndex:n] objectForKey:@"AttributName"]];
    NSLog(@"%@", mutary);
}
attributeString = [mutary componentsJoinedByString:@","];

 raume = [NSEntityDescription insertNewObjectForEntityForName:@"Raum" inManagedObjectContext:context];

raume.raumattribut = attributeString;

 if (![context save:&error]) {
 NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
 abort();

MultableArray 的 NSLog 输出是:

    2012-06-20 17:21:00.047 book-app[31984:15803] (
    A7OVERHEAD,
    Beamer
)

到目前为止它工作正常。来自数据库的两个预期值现在位于数组中。 现在我从 CoreData 获取这些属性:

    NSManagedObjectContext *context = [app managedObjectContext];
    NSFetchRequest *request = [[NSFetchRequest alloc] init];
    NSEntityDescription *entity = [NSEntityDescription entityForName:@"Raum" inManagedObjectContext:context];
    [request setEntity:entity];
    NSError *error = nil;
    NSArray *events = [context executeFetchRequest:request error:&error];

for (Raum *att in events)
    {
     stringAttribute = [[events valueForKey:@"raumattribut"] componentsJoinedByString:@","];
     NSLog(@"ATTRIBUTE: %@", stringAttribute);
    }
}

到目前为止一切顺利。但是如果我现在查看我的 NSLog 输出:

2012-06-20 17:21:00.055 book-app[31984:15803] ATTRIBUTE: <null>,A7OVERHEAD,Beamer

CoreData 正在返回,然后是两个值。这是从哪里来的?

有人可以帮忙吗?

提前致谢

最佳答案

编辑:经过一些调查和澄清(见评论),这是我的答案: 在 NSArray 上调用 valueForKey 会返回一个数组,其中每个元素都是通过在原始数组的每个成员上调用 valueForKey 创建的。这意味着您的输出表明您的获取请求总共返回了 3 个对象,而第一个对象没有设置 raumattribut 属性。

上一个答案: 您在 NSArray 的实例(查询结果)上调用 valueForKey。也许您需要 get objectAtIndex:0 首先使用要对其值进行迭代的变量? valueForKey 可能返回 nil。

stringAttribute = [[att valueForKey:@"raumattribut"] componentsJoinedByString:@","];

或类似的。

编辑: 起初我错过了第二部分中的 for 循环,我编辑了上面的代码示例以使用 attr,它

关于iphone - CoreData 中保存的字符串返回 <null> 和字符串。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11123153/

相关文章:

ios - 如何从 UIGestureRecognizer 获取 UITouch 位置

ios - 如何使用 SDWebImage 将图像从 JSON 加载到 UIImageView?

ios - 如何在 xcode 7.3 上本地化 ionic 应用程序的显示包名称

ios - Facebook 登录按钮抛出错误并显示我无法登录

iphone - MFMailComposeViewController 不链接模拟器

iphone - UIImagePickerController 在点击 "Use"按钮后间歇性地停止响应

ios - 背景颜色不改变?

iphone - Objective-c在进入背景时不要暂停

c++ - 如果我将 Objective-C 用于低级代码,我的 iPhone 应用程序会受到性能影响吗?

ios - 使用自动版式,当导航栏消失时如何将UILabel保持在同一位置?