0

正しいボタンが押されたときにテキストのいくつかのページを表示するアプリを開発しています。これは静的な専有情報です。6 つのボタンごとに異なるテキスト ファイルがあります。

iOS SDK は初めてです。XCODE でプロジェクトを作成すると、Documents フォルダーが自動的に作成されますか? 「ドキュメント フォルダ」は Apple が「サンドボックス」と呼んでいるものですか?

テキスト(画面に表示される部分、たくさんのテキスト)を書き、「ドキュメントフォルダー」にドロップして、特定のボタンが押されたときにiPhoneで「スクロールモード」で表示できますか?

大きなテキスト ファイルを効率的に保存および表示する方法がある場合、情報は単なるテキスト ファイルではなく独自のものであるため、テキストをコンパイルの一部にすることをお勧めします。

4

3 に答える 3

0

アプリにテキストを追加することは 1 つのことですが、安全にすることはより困難です。同様の問題に対処する必要があり、アプリに暗号化されたフォーマットされていないテキストを使用し、表示されている部分のみを解読することにしました。テキストをどの程度「秘密」にしたいかによって異なります。とにかく誰でもそれを読んで、スクリーンショットで画面から直接コピーできることを忘れないでください. また、アプリ内の暗号化されていないテキストは、HexEditor を使用して非常に簡単に読み取って抽出できます。

または、テキストを *.txt (フォーマットなし) または html (任意のフォーマット) ファイル形式で準備し、それをアプリに含めることもできます。ただし、これは他のユーザーがファイルをコピーするための簡単な方法です。

于 2011-09-14T05:21:22.803 に答える
0

はい、Ken さん、アプリを作成するとドキュメント ディレクトリがデフォルトで存在します。必要に応じて、そこからテキスト データを読み書きすることもできます。

Documents フォルダーにデータを直接ドロップすることはできませんが、プログラムで行う必要があります。

ファイルの 1 つが「TextFile1.txt」であるとします。最初にこのファイルをプロジェクトに追加し、appDelegate のどこかに次のコードを記述します。

NSString *fileBundlePath = [[NSBundle mainBundle] pathForResource:@"TextFile1" ofType:@"txt"];

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *fileDocumentDirectorySavePath = [documentsDirectory stringByAppendingPathComponent:@"TextFile1.txt"];

NSFileManager *fm = [NSFileManager defaultManager];
if (![fm fileExistsAtPath:fileDocumentDirectorySavePath])
    [fm copyItemAtPath:fileBundlePath toPath:fileDocumentDirectorySavePath error:nil];

これにより、TextFile1.txt がアプリの Documents フォルダーにコピーされ、次のコードを使用して必要なときにいつでも読み取ることができます。

// You can get the fileDocumentDirectorySavePath same way as in the above code
NSString *stringToDisplay = [[NSString alloc] initWithData:[NSData dataWithContentsOfFile:fileDocumentDirectorySavePath] encoding:NSUTF8StringEncoding];
NSLog(@"String : %@", stringToDisplay);

これは、作業する必要があるテキスト ファイルの数に関係なく行うことができます。

于 2011-09-14T05:07:15.483 に答える
0

テキストを動的に変更したくない場合 (つまり、更新を送信するときのみ)、ファイルを Xcode プロジェクトに直接追加するだけで、サンドボックス/ドキュメント フォルダーについても心配する必要はありません。ファイルを Xcode のサイドバーにドラッグし (カスタム フォルダーを作成するのは非常に面倒です)、「ファイルをプロジェクト フォルダーにコピーしますか?」を確認します。尋ねられたとき。述べられているように、それらはコピーされ、コンパイルされたアプリの一部になりました。次に、ファイルを照会して、UITextViewテキストのスクロールを自動的にサポートする で表示できます。

または、私が考えるより簡単な方法を実行して、ファイルをコードに直接含めることもできます。テキストをロードするクラス ファイルで、.h ファイル (ヘッダー) にUITextView、プロパティと変数として a を追加します。.m ファイル (実装) で を実行し、テキストを含む NSStringyourTextView = [[UITextView alloc] init];に設定します。yourTextView.textややこしいように聞こえますが、最終的には更新がより迅速かつ簡単になります。つまり、テキストがフォーマットされていない限り... とにかく、UITextViewXIB/NIB ファイルに を作成し、テキストを直接追加することもできます。

コードで行うことをお勧めします。それが一番変えやすいでしょう。

于 2011-09-14T05:07:47.610 に答える