将包含内容的 NSMutableArray 元素保存到核心数据实体的最佳方法
Best way to save NSMutableArray elements with content to Core Data entity
我只需要将有数据的数组元素移动到核心数据;这是我的代码(userPreferences 是我的 CoreData 实体):
int count = [addlServicesArray count];
// move entire array elements with content to userPreferences
userPreferences.aAddlSvcs1 = addlServicesArray[0];
userPreferences.aAddlSvcs2 = addlServicesArray[1];
userPreferences.aAddlSvcs3 = addlServicesArray[2];
userPreferences.aAddlSvcs4 = addlServicesArray[3];
userPreferences.aAddlSvcs5 = addlServicesArray[4];
userPreferences.aAddlSvcs6 = addlServicesArray[5];
userPreferences.aAddlSvcs7 = addlServicesArray[6];
userPreferences.aAddlSvcs8 = addlServicesArray[7];
userPreferences.aAddlSvcs9 = addlServicesArray[8];
userPreferences.aAddlSvcs10 = addlServicesArray[9];
userPreferences.aAddlSvcs11 = addlServicesArray[10];
userPreferences.aAddlSvcs12 = addlServicesArray[11];
userPreferences.aAddlSvcs13 = addlServicesArray[12];
userPreferences.aAddlSvcs14 = addlServicesArray[13];
问题是,如果我只有数组第 0 行中的数据,当它移动到第 1 行时它会崩溃,因为第 1 行是空的。我敢肯定有更好的方法可以做到这一点;我查看了 SO 和 Google,但没有发现任何具体内容。任何帮助,将不胜感激。 :-}
使用 for
循环。在循环中,创建一个带有属性名称的字符串,然后使用 setValue:forKey:
方法:
NSUInteger count = [addlServicesArray count];
for (NSUInteger i=0; i<count; i++) {
NSString *key = [NSString stringWithFormat:@"aAddlSvcs%lu",i];
[userPreferences setValue:addlServicesArray[i] forKey:key];
}
您应该确保数组的条目数不能多于属性数,否则会出错。
我只需要将有数据的数组元素移动到核心数据;这是我的代码(userPreferences 是我的 CoreData 实体):
int count = [addlServicesArray count];
// move entire array elements with content to userPreferences
userPreferences.aAddlSvcs1 = addlServicesArray[0];
userPreferences.aAddlSvcs2 = addlServicesArray[1];
userPreferences.aAddlSvcs3 = addlServicesArray[2];
userPreferences.aAddlSvcs4 = addlServicesArray[3];
userPreferences.aAddlSvcs5 = addlServicesArray[4];
userPreferences.aAddlSvcs6 = addlServicesArray[5];
userPreferences.aAddlSvcs7 = addlServicesArray[6];
userPreferences.aAddlSvcs8 = addlServicesArray[7];
userPreferences.aAddlSvcs9 = addlServicesArray[8];
userPreferences.aAddlSvcs10 = addlServicesArray[9];
userPreferences.aAddlSvcs11 = addlServicesArray[10];
userPreferences.aAddlSvcs12 = addlServicesArray[11];
userPreferences.aAddlSvcs13 = addlServicesArray[12];
userPreferences.aAddlSvcs14 = addlServicesArray[13];
问题是,如果我只有数组第 0 行中的数据,当它移动到第 1 行时它会崩溃,因为第 1 行是空的。我敢肯定有更好的方法可以做到这一点;我查看了 SO 和 Google,但没有发现任何具体内容。任何帮助,将不胜感激。 :-}
使用 for
循环。在循环中,创建一个带有属性名称的字符串,然后使用 setValue:forKey:
方法:
NSUInteger count = [addlServicesArray count];
for (NSUInteger i=0; i<count; i++) {
NSString *key = [NSString stringWithFormat:@"aAddlSvcs%lu",i];
[userPreferences setValue:addlServicesArray[i] forKey:key];
}
您应该确保数组的条目数不能多于属性数,否则会出错。