0

iOSアプリケーション用のバックエンドコードとフロントエンドコードを作成しています。フロントエンドコードはiPhone用にビルドされ、後でiPad用にビルドされます。ただし、バックエンドコードは同じになります。私の数人の開発者はバックエンドに取り組んでおり、一部の開発者はフロントエンドに取り組んでいます。バックエンド、アプリケーションはCoreDataを使用します。バックエンドコードを静的ライブラリとして作成し、フロントエンドコードにリンクさせることを考えていました。しかし、それは複雑すぎるようです。他のメカニズムはありますか?たとえば、バックエンドプロジェクトは、P1が空のアプリケーションとしてビルドされ、フロントエンドがP2としてビルドされると言います。そして、どういうわけか、P1がP2のクラス/ファイル/コードを使用できないことを確認します(つまり、P1はP2に依存しません)が、P2はP1のクラス/APIなどを使用できます。依存関係の分離をクリーンにするために、P1が(誤って)P2コードを使用しないように強制したいと思います。助言がありますか?

4

1 に答える 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 に答える