在iPhone或模拟器上保存文本文件并从Mac读取

在iPhone或模拟器上保存文本文件并从Mac读取,iphone,ios,ios-simulator,Iphone,Ios,Ios Simulator,我想使用[UIReferenceLibraryViewController字典HasDefinitionForTerm:word]过滤现有单词列表(文本文件或web资源),如下所示: NSMutableArray * validWords = [[NSMutableArray alloc] initWithCapacity:[words count]]; for (NSString * word in words) { if ([UIReferenceLibraryViewControl

我想使用[UIReferenceLibraryViewController字典HasDefinitionForTerm:word]过滤现有单词列表(文本文件或web资源),如下所示:

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有效字持久化到可以从Mac访问的位置


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

您可能需要查看将数据从您的iDevice获取到Mac(并返回)。

您可能需要查看将数据从iDevice获取到Mac(并返回).

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

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 Simulator
等中浏览到该应用程序。
words.txt
应该在那里。

类似的内容。我还没有测试过,但你明白了

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 Simulator
等中浏览应用程序。
words.txt
应该在那里。

对于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];

不那么有趣,但更简单的是,只需将其写入缓存目录中的文件,然后在Finder中打开即可。这也适用于设备:转到
Xcode-organizer>Devices>Applications
,然后选择
Download

对于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];

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

是否正在寻找可以在商业应用程序中实施的解决方案?还是只需要浏览到使用iOS模拟器创建的文件?此外,您是否需要文件以文本形式可读,或者您是否计划在Mac端对其进行反序列化?好问题:这只是一个一次性操作(因此,有趣的是,如果有更直接的方式访问模拟器的文件系统,iCloud可能会有些过分)。我可以反序列化它,如果需要的话。您是否在寻找可以在商业应用程序中实现的解决方案?还是只需要浏览到使用iOS模拟器创建的文件?此外,您是否需要文件以文本形式可读,或者您是否计划在Mac端对其进行反序列化?好问题:这只是一个一次性操作(因此,有趣的是,如果有更直接的方式访问模拟器的文件系统,iCloud可能会有些过分)。如果需要的话,我可以反序列化它。这是个好主意,虽然因为它只是一次操作(很抱歉,我刚编辑的原始帖子中忘了提到这一点),但可能有点过头了。仍然+1,以防有人正在寻找相同的功能,但重复需要它。这是个好主意,尽管这只是一次操作(很抱歉,在我刚刚编辑的原始帖子中忘了提到这一点),但可能有点过火。仍然+1,以防有人正在寻找相同的功能,但需要它重复。这是作为宣传,正是我所寻找的!我假设这将反过来工作(意味着我也可以从同一位置读取文件)?是的,使用iOS模拟器,您也可以从该文件读取。把iOS模拟器想象成一个MacOSX应用程序,可以完全访问文件系统。注意:不要将此代码提交到应用商店。这是广告宣传的,正是我想要的!我假设这将反过来工作(意味着我也可以从同一位置读取文件)?是的,使用iOS模拟器,您也可以从该文件读取。把iOS模拟器想象成一个MacOSX应用程序,可以完全访问文件系统。注意:不要将此代码提交到应用商店。