それぞれ数十のプロパティを持つ数十のモデルがあり、すべてNSCoder
プロトコルとを使用してディスクに保存できるNSKeyed(Un)archiver
ため、iOS アプリケーションのモデルを作成して維持するのは大変な作業です。1 つのモデルに多数のプロパティがあるため、次のことを行う必要があります。
多数のプロパティを定義します(どこかに定義する必要があるため、これで問題ありません)
メソッド
initWithCoder:
を入力します。これは、プロパティ名 (または定数キー) を入力/コピーして貼り付ける 12 行と 20 回です。3) いくつかはencodeWithCoder:
.
間違い (入力、コピー、変更 (または変更しない)のいずれか) のリスクは非常encodeObject:
にencodeInteger:
大きいです。その上、それは単純に多くの手作業であり、私はやりたくないのです。我ら。
まずは作業の簡素化などを検討しました。このようなもの:
#define encodeObject(x) [encoder encodeObject:[self valueForKey:x] forKey:x]
#define decodeObject(x) [self setValue:[decoder decodeObjectForKey:x] forKey:x]
しかし、それはまだ大変な作業です。これはもっと簡単にできませんか?イントロスペクションなどを使用して実行時にこれを行うことは好みません。
モデルファイルを生成/操作してXcodeに追加するPythonスクリプトについて考えています。これは、何らかの JSON 記述ファイルに基づいている可能性があります。
ビルド前の段階で Xcode がこれを自動的に実行するようにすると、すばらしいでしょう。つまり、すべてのモデルとすべてのプロパティを一度に定義し、エンコード/デコードするのを忘れた間違いやプロパティについて心配する必要がない単一の場所を意味します。
そのようなものはありますか?読めないAppleの「XML」プロジェクトファイルを台無しにすることなく、Xcodeプロジェクトにファイルを追加する方法はありますか? そして、ターゲットにヘッダーを含めることはどうですか..または、すべての作業を節約するための他の優れた方法でしょうか?