0

私の目標(これはトレーニング目的です):

  1. ユーザーは作成したクイズを作成(50%完了)/編集/削除/表示できます!
  2. クイズには、名前、説明、タイプ、... (DONE)、および次のようなオブジェクトを含む配列があります: @"Question:Answer"
  3. ユーザーは、電子メールの添付ファイルを介して 1 つまたは複数のクイズをエクスポート/インポートできる必要があります。しかし、これまでのところ私は来ました:

クイズクラス: .h

   @interface quiz : NSObject {
        NSString *title, *description, *type ....;
        NSArray *words;

    }

    @property(nonatomic,retain)NSString *title, *description, *type ... ;
    @property(nonatomic,retain)NSArray *words;
    @end

必要なすべての情報を提供します。

quiz *newquiz = [[quiz alloc] init];
        newquiz.title = exName.text;
        newquiz.description = myDesc;
        newquiz.type = myType;
            newquiz.array = wordsArray;
        ....

さて、私はNSObjectを持っています。今、私は何をすべきかわかりませんか?誰かが私の目標を達成するために私がしなければならないいくつかの簡単でクリーンな手順を説明してもらえますか?

次に何をすべきかについての私の考え:

  1. NSobject をローカルに保存する必要があります。おそらく writeToFile:@"filename.obj" です。これを実装する方法がわかりません!
4

1 に答える 1

1

あなたの質問が何であるかよくわかりません.スニペットには10​​個ほどの質問があります. しかし、難しいかもしれない唯一のことは、インポート/エクスポートのものです。

使用しているシステムによって異なります。ジェイルブレイクされたコミュニティでは、サンドボックスの外にあるファイルにアクセスできますが、ストック iPhone の抑圧された世界ではアクセスできません。

方法 1: 今、あなたが株式市場にいると仮定しましょう。クイズをメールまたは w/e で渡したいので、URL スキーム形式を使用します。

これが意味することは、アプリを起動する URL を渡すことです。

URL は次のようになります。

`quizzer://question1/question2/question3

または同様のもの、基本的には好きなように行うことができます

スキームを説明するために info.plist にキーを追加する必要があるため、これはその中に入ります

<key>CFBundleURLTypes</key>
    <array>
        <dict>
            <key>CFBundleURLSchemes</key>
            <array>
                <string>quizzer</string>
            </array>
        </dict>
    </array>

注、これはすべてxcodeで実行できますが、私はもうxcodeを使用していません...

これで、誰かが上記のようにフォーマットされた URL をクリックするたびに、アプリが起動され、アプリ デリゲートがメッセージを受信します。

次に、このアプリのデリゲート メソッドを実装する必要があります

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url 
{
  // Do something with the url here
}

そこで、URL から必要な w/e をビルドできるようになりました

方法 2: K さん、脱獄市場にいると仮定できます。私が見る最も簡単な方法は、NSDictionaryを次の機能で使用することです

[NSDictionary dictionaryWithContentsOfFile:(NSString *)path];

[dictionary writeToFile:(NSString *)path atomically:(BOOL)atomically];

ジェイルブレイクがこれの一部である理由は、電子メールの添付ファイルからクイズをインポートする場合に注意してください。おそらくサンドボックスの外にある添付ファイルの場所を知ってから、情報を取得する必要があります。これは脱獄していないとできないことです。

アプリのディレクトリにファイルを取得する他の方法 (サーバーのダウンロードなど) がある場合、ジェイルブレイクされているかどうかに関係なく、これらの関数はタスクに最適です。

それはインポートとエクスポートのためのものです...それがあなたの質問の主要部分だったと思います。

于 2011-02-08T03:18:46.920 に答える