iOSアプリケーション用のバックエンドコードとフロントエンドコードを作成しています。フロントエンドコードはiPhone用にビルドされ、後でiPad用にビルドされます。ただし、バックエンドコードは同じになります。私の数人の開発者はバックエンドに取り組んでおり、一部の開発者はフロントエンドに取り組んでいます。バックエンド、アプリケーションはCoreDataを使用します。バックエンドコードを静的ライブラリとして作成し、フロントエンドコードにリンクさせることを考えていました。しかし、それは複雑すぎるようです。他のメカニズムはありますか?たとえば、バックエンドプロジェクトは、P1が空のアプリケーションとしてビルドされ、フロントエンドがP2としてビルドされると言います。そして、どういうわけか、P1がP2のクラス/ファイル/コードを使用できないことを確認します(つまり、P1はP2に依存しません)が、P2はP1のクラス/APIなどを使用できます。依存関係の分離をクリーンにするために、P1が(誤って)P2コードを使用しないように強制したいと思います。助言がありますか?
質問する
134 次
1 に答える
2
静的ライブラリは良い解決策だと思います。同様に、コア データ データベースからデータを取得するためのヘルパー クラスを作成できます。例えば:
+ (NSArray *)fetchAllUsers;
+ (User *)fetchUserByName:(NSString *)name;
フロントエンドの開発者は、これらのメソッドを呼び出すことができることしか知りません。バックエンド開発者は、メソッドの動作を担当します。
インスタンス化が必要な場合は、singeltonクラスを検討してください。
編集:(静的コアデータクラスの例)
+ (void)insertNewUserWithName:(NSString *)name
{
NSManagedObjectContext *context = [self managedObjectContext];
User *user = [NSEntityDescription insertNewObjectForEntityForName:@"Users"
inManagedObjectContext:context];
[user setName:name];
NSError *error;
if (![context save:&error])
{
NSLog(@"Whoops, couldn't save: %@", [error localizedDescription]);
}
}
于 2012-04-14T19:48:28.313 に答える