4

iOS 用のカスタム静的フレームワークを実装してきました。すべてがうまく機能していますが、フレームワークのコアデータを介してストア情報が必要であることに気付きました。以前のプロジェクトで magicrecord ライブラリを使用してきましたが、magicalrecord を独自のカスタム静的フレームワークに統合した経験がある人がいるかどうか疑問に思っていました。

フレームワーク コード内で setupcorestack メソッドを呼び出しても、何も起こりません。

4

2 に答える 2

6

方法は次のとおりです。

// 1: Note that all setup is done within the AppDelegate of the project (not the framework)

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

    // 2: Locate your framework bundle
    NSString *mainBundlePath = [[NSBundle mainBundle] resourcePath];
    NSString *frameworkBundlePath = [mainBundlePath stringByAppendingPathComponent:@"Your-Framework-Bundle-Name.bundle"];
    NSBundle *frameworkBundle = [NSBundle bundleWithPath:frameworkBundlePath];

    // 3: Create an NSManagedObject Model by merging all models from the project and your framework. This simplifies saving as you can use a single persistent store coordinator to save a single managed object model.
    NSArray *bundles = [NSArray arrayWithObjects:[NSBundle mainBundle], frameworkBundle, nil];
    NSManagedObjectModel *models = [NSManagedObjectModel mergedModelFromBundles:bundles];

    [MagicalRecord setShouldAutoCreateManagedObjectModel:NO];
    [NSManagedObjectModel setDefaultManagedObjectModel:models];
    [MagicalRecord setupCoreDataStackWithStoreNamed:@"Your-Store-Name.sqlite"];

    // Project specific setup goes here...

    return YES;
    }

注: 複数の永続ストアと複数のデータベースを持つことは可能であるように思われますが、まだこれを試していないか、その必要がありました。ただし、ケースで複数の永続ストアが必要な場合は、次の SO 投稿も参照してください。

MagicalRecord を使用した複数のデータベース、またはデータベースの一部のみを iCloud に同期する

于 2013-04-05T17:54:23.067 に答える
-1

私はこのようにします:

NSManagedObjectModel *model = [NSManagedObjectModel MR_newModelNamed:@"MyModel.momd" inBundleNamed:@"myOtherResource.bundle"];
[NSManagedObjectModel  MR_setDefaultManagedObjectModel:model];

//... continue to setup CoreDataStack after here
于 2013-10-17T19:50:24.440 に答える