gpt4 book ai didi

android - 如何在 Apportable 中使用 CoreData?

转载 作者:行者123 更新时间:2023-11-29 00:26:04 25 4
gpt4 key购买 nike

我正在尝试完整版的 apportable,但我遇到了 CoreData 问题:

我在 configuration.json 中有正确的特性:

"FEATURES": ["opengles2","landscape","prefer_external_storage","write_external_storage","write_settings"],
  1. 设置存储数据库的 storageURL:

     #ifdef ANDROID
    //tried many different locations but not luck, I think there is the problem
    NSURL *storeURL = [NSURL URLWithString:@"/data/data/com.bluepiggames.zombieSlice/files/Documents/ZS_SuperDatabase.db"];
    #else
    NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"ZS_SuperDatabase"];
    #endif
  2. 创建持久性协调器:

    NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:
    [NSNumber numberWithBool:YES],
    NSMigratePersistentStoresAutomaticallyOption,
    [NSNumber numberWithBool:YES],
    NSInferMappingModelAutomaticallyOption, nil];

    _persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc]
    initWithManagedObjectModel: [self managedObjectModel]];
  3. 最后,这些是应用程序崩溃的地方:

    if (![_persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:options error:&error]) {
    NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
    //abort();

    调试器中没有错误提示,只有这样的崩溃。

    F/libc    (10177): Fatal signal 11 (SIGSEGV) at 0xe1a0d013 (code=1)
    D/dalvikvm( 7227): GC_CONCURRENT freed 387K, 12% free 6566K/7431K, paused 2ms+2ms
    D/IabHelper(10177): Querying SKU details.
    I/DEBUG ( 8708): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    I/DEBUG ( 8708): Build fingerprint: 'SoftWinnner/crane_a1002jhenergy/crane-a1002jhenergy:4.0.4/IMM76D/20120822:eng/test-keys'
    I/DEBUG ( 8708): pid: 10177, tid: 10218 >>> com.bluepiggames.zombieSlice <<<
    I/DEBUG ( 8708): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr e1a0d013
    I/DEBUG ( 8708): r0 63c40b68 r1 6412b13c r2 6412b13c r3 00000000

(编辑)为了解决这个崩溃,我们必须设置之前:

  NSError *error = nil. //!!!!!
if (![_persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:options error:&error])

现在问题出在不同的地方:

// Returns the managed object model for the application.
// If the model doesn't already exist, it is created from the application's model.
- (NSManagedObjectModel *)managedObjectModel
{
if (_managedObjectModel != nil) {
return _managedObjectModel;
}
NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"ZSDataModel" withExtension:@"momd"];
NSLog(@"Test managedModel found %@",modelURL);

_managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];
return _managedObjectModel;
}

而这个错误是因为没有找到编译好的DataModel。任何人都知道如何将编译后的数据模型“DataModel.momod”放入合适的项目中?

谢谢

最佳答案

很抱歉这么晚才回复,但我不想让这个问题无人回答。现在,momd 文件不会自动添加为 Assets 。不幸的是,每次更新 xcdatamodeld 时都需要手动执行一个步骤。

  1. 导航到模拟器的应用程序目录(例如 ~/Library/Application\ Support/iPhone\ Simulator/6.1/Applications/<randomString>/<YourApp>.app/)
  2. 导航到 momd 目录
  3. 在终端中运行以下命令:plutil -convert xml1 <ModelName>.mom -o <pathNearYourApprojFolder>/<ModelName>.mom
  4. 在你的 configuration.json 中 add_params字典,然后在 assets数组,添加路径<pathRelativeToApprojFolder>/<ModelName>.mom你用plutil转换的文件

关于android - 如何在 Apportable 中使用 CoreData?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19388775/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com