0

我想使用 [UIReferenceLibraryViewController dictionaryHasDefinitionForTerm:word] 过滤现有的单词列表(文本文件或网络资源),如下所示:

NSMutableArray * validWords = [[NSMutableArray alloc] initWithCapacity:[words count]];
for (NSString * word in words)
{
    if ([UIReferenceLibraryViewController dictionaryHasDefinitionForTerm:word])
    {
        [validWords addObject:word];
    }
    else
    {
        NSLog(@"reject word: %@", word);
    }
}

使用我的 iPhone 或 Xcode 4 设备模拟器,如何将生成的 NSMutableArray validWords 保存到我可以从我的 Mac 访问的位置?

编辑:这是一次性操作,所以任何可以让我从设备或模拟器中获取数据的东西都可以。我考虑在我的主机上实现一个 Web 服务来读/写(大)文本文件,但想知道是否有更直接的方法来完成这个。

4

3 回答 3

2

对于 iOS 模拟器,您可以方便地写入桌面上的文件。该应用程序的目录位于某处:

/Users/me/Library/Application Support/iPhone Simulator/6.0/Applications/ABC/Library/Caches

因此,要将您的有效单词数组写入桌面上的 plist,请使用:

NSString *caches = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];
NSString *path = [caches stringByAppendingPathComponent:@"/../../../../../../../../Desktop/words.plist"];
[validWords writeToFile:path atomically:NO];

不那么有趣,但更容易的是,只需将其写入 Caches 目录中的文件,然后在 Finder 中打开该文件。这也适用于设备:转到Xcode organizer > Devices > Applications并选择Download

于 2012-09-26T14:14:29.387 回答
1

您可能想要研究iCloud从您的 iDevice 获取数据到您的 Mac(并返回)。

于 2012-09-26T13:23:08.900 回答
0

像这样的东西。我没有测试过 - 但你明白了。

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES);
NSString *applicationSupportDirectory = [paths objectAtIndex:0];
NSString *wordsPath = [paths stringByAppendingPathComponent:@"words.txt"];

FILE *filePointer = fopen([wordsPath UTF8String],"w");
[words enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
    fprintf(filePointer,"%s\n",[obj UTF8String]);
}];
fclose(filePointer);

然后你应该能够浏览到应用程序~/Library/Application Support/iPhone Simulatorwords.txt应该在那里。

于 2012-09-26T14:01:42.973 回答