gpt4 book ai didi

objective-c - 如何将核心数据数据放入数组数组中?与 Dave DeLong 的 CHCSVWriter 一起使用

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:34:35 25 4
gpt4 key购买 nike

我认为这很简单,但我是 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/

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