我需要有一个NSNumber *数组作为Core Data中实体的属性。我想我可以将它们存储为字符串,然后在我的DAL中我可以将它们全部视为NSNumber *的数组,但然后将数组解析为一个字符串,每个值之间有一个空格。我可以设置并获取“interval”作为NSNumber *的数组,但实际上将它们存储为字符串。这是一个坏主意吗??有更好的方法吗?
答案 0 :(得分:2)
您可以将您的数字保存为NSString,并使用此代码将此NSString中的get和数组分隔开来。
//Get your string of numbers from CoreData
NSString *stringNumbers = [[yourClassDAO instance] getNumbersString];
//Transform them in an array
NSArray *arraNumbers = [stringNumbers componentsSeparatedByString:@","];
答案 1 :(得分:2)
要将数字数组存储为单个属性,您只需定义属性即可 输入“Transformable”。然后你可以将数组分配给属性, 例如
NSArray *arrayOfNumbers = …;
object.numbers = arrayOfNumbers;
核心数据访问器方法将自动转换 将数组存储在SQLite文件中的某些数据blob中,然后将其转换回来 当你读到房产时。
一个缺点是您无法访问搜索谓词中的数组元素。如果你 需要那么你应该定义一个多对多的关系。