- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我认为这很简单,但我是 Objective-C、IOS 和 Core Data 的新手。
我有一个名为 EnquiryStore 的核心数据实体,它包含各种属性“名称”、“地址”、“查询”等。
我可以很好地获取结果,但我很难理解结果的存储方式!这让我很难执行程序的下一部分,即使用 Dave DeLong 的 CHCSVWriter 将数据导出到 CSV。我知道要使用
[array writeToCSVFile:outputCSVFile atomically: NO];
它将接受一个数组的数组,这是 Core Data 给我的吗?因为我不能用那个方法让它工作。
我可以用
[myCSVWriter writeField: ...];
[myCSVWriter writeLine];
但这似乎很啰嗦,因为我必须从 Core Data 的每个属性构建字符串。
最佳答案
您是唯一知道您的 NSManagedObject 是什么样子的人,它可能具有不可能放入 csv 文件的关系。它可能包含二进制数据,这在 csv 文件中不是很有用。或者它可能只是具有您不想导出的属性。而且您还必须决定要以何种顺序导出您的 csv。
很容易创建 NSArray(即要导出的 NSManagedObjects 列表)的 NSArray(即该对象的导出属性列表)。只需枚举所有 NSManagedObject 并用要导出的值填充一个数组。
你可以使用这样的东西:
NSArray *objectsForExport = ... /* get it through a fetch request... helper function... whatever */
NSArray *exportKeys = [NSArray arrayWithObjects:@"foo", @"bar", @"name", @"city", @"address", nil];
NSMutableArray *csvObjects = [NSMutableArray arrayWithCapacity:[objectsForExport count]];
for (NSManagedObject *object in objectsForExport) {
NSMutableArray *anObjectArray = [NSMutableArray arrayWithCapacity:[exportKeys count]];
for (NSString *key in exportKeys) {
id value = [object valueForKey:key];
if (!value) {
value = @"";
}
[anObjectArray addObject:[value description]];
}
[csvObjects addObject:anObjectArray];
}
然后你就有了你的数组数组。
我相信有一个方法可以返回一个 NSArray 值,如果你传递一个 NSArray 键,但我找不到它,我不记得它的名字,甚至不记得它属于哪个类。
关于objective-c - 如何将核心数据数据放入数组数组中?与 Dave DeLong 的 CHCSVWriter 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5210315/
昨天,Dave DeLong回答a question of mine .这不是我要找的答案,但在问题中他提到了一种为 Objective-C 生成 doxygen 风格文档的替代方法。 在我真正研究它
我认为这很简单,但我是 Objective-C、IOS 和 Core Data 的新手。 我有一个名为 EnquiryStore 的核心数据实体,它包含各种属性“名称”、“地址”、“查询”等。 我可以
我是一名优秀的程序员,十分优秀!