0

次のように[UIReferenceLibraryViewControllerdictionaryHasDefinitionForTerm: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またはXcode4デバイスシミュレーターを使用して、結果のNSMutableArray validWordsをMacからアクセスできる場所に永続化するにはどうすればよいですか?

編集:これは1回限りの操作であることが意図されているため、デバイスまたはシミュレーターからデータを取得できるものであれば何でも問題ありません。ホストマシンに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];

面白くはありませんが、Finderで開いたキャッシュディレクトリのファイルに書き込む方がはるかに簡単です。これはデバイスでも機能します。に移動してXcode organizer > Devices > Applicationsを選択しますDownload

于 2012-09-26T14:14:29.387 に答える
1

iCloudiDeviceから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 Simulatorはず words.txtです。

于 2012-09-26T14:01:42.973 に答える