RestKit:无法使用 coredata 执行映射

2023-12-27

我正在使用rest kit 0.20.3和Xcode 5。如果没有核心数据,我可以执行所有rest kit操作,但是当我使用核心数据尝试它时,我什至无法执行GET由于一些问题。我想不通。我是核心数据的新手。所以请帮忙。这是我的代码:

AppDelegate.m

@implementation CardGameAppDelegate

@synthesize managedObjectContext = _managedObjectContext;
@synthesize managedObjectModel = _managedObjectModel;
@synthesize persistentStoreCoordinator = _persistentStoreCoordinator;

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    RKLogConfigureByName("RestKit", RKLogLevelWarning);
    RKLogConfigureByName("RestKit/ObjectMapping", RKLogLevelTrace);
    RKLogConfigureByName("RestKit/Network", RKLogLevelTrace);

    RKObjectManager *objectManager = [RKObjectManager managerWithBaseURL:[NSURL URLWithString:@"http://192.168.1.3:3010/"]];


    RKManagedObjectStore *objectStore = [[RKManagedObjectStore alloc] initWithManagedObjectModel:self.managedObjectModel];

    objectManager.managedObjectStore = objectStore;

    RKEntityMapping *playerMapping = [RKEntityMapping mappingForEntityForName:@"Player" inManagedObjectStore:objectStore];
    [playerMapping addAttributeMappingsFromDictionary:@{@"id": @"playerId",
                                                        @"name": @"playerName",
                                                        @"age" : @"playerAge",
                                                        @"created_at": @"createdAt",
                                                        @"updated_at": @"updatedAt"}];



    RKResponseDescriptor *responseDesc = [RKResponseDescriptor responseDescriptorWithMapping:playerMapping method:RKRequestMethodGET pathPattern:@"/players.json" keyPath:nil statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)];

    [objectManager addResponseDescriptor:responseDesc];

    PlayersTableViewController *ptvc = (PlayersTableViewController *)self.window.rootViewController;
    ptvc.managedObjectContext = self.managedObjectContext;

    return YES;
}

和playerTableViewController.h的代码

#import <UIKit/UIKit.h>

@interface PlayersTableViewController : UITableViewController <NSFetchedResultsControllerDelegate>

@property (strong, nonatomic) NSFetchedResultsController *fetchedResultsController;
@property (strong, nonatomic) NSManagedObjectContext *managedObjectContext;

@end

和 PlayerTableViewController.m 获取方法:

-(void)loadPlayers{
    [[RKObjectManager sharedManager] getObjectsAtPath:@"/players.json" parameters:nil success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult){
        [self.refreshControl endRefreshing];
    } failure:^(RKObjectRequestOperation *operation, NSError *error) {
        [self.refreshControl endRefreshing];
        UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"An Error Has Occurred" message:[error localizedDescription] delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
        [alertView show];
    }];
}

我收到以下错误:

 Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Unable to perform mapping: No `managedObjectContext` assigned. (Mapping response.URL = http://192.168.1.3:3010/players.json)'

仅仅创建是不够的objectStore,您需要完成核心数据堆栈设置的其余部分。您还应该在 RestKit 中执行此操作,而不是在应用程序委托中(这是 Apple 提供的默认配置)。这将类似于(根据您的要求定制):

NSManagedObjectModel *managedObjectModel = [NSManagedObjectModel mergedModelFromBundles:nil];
RKManagedObjectStore *managedObjectStore = [[RKManagedObjectStore alloc] initWithManagedObjectModel:managedObjectModel];

[managedObjectStore createPersistentStoreCoordinator];

NSString *storePath = [RKApplicationDataDirectory() stringByAppendingPathComponent:@"XXXX.sqlite"];
NSError *error;
NSPersistentStore *persistentStore = [managedObjectStore addSQLitePersistentStoreAtPath:storePath
                                                                 fromSeedDatabaseAtPath:nil
                                                                      withConfiguration:nil
                                                                                options:@{
                                                                                          NSMigratePersistentStoresAutomaticallyOption : @(YES),
                                                                                          NSInferMappingModelAutomaticallyOption : @(YES),
                                                                                              }
                                                                                  error:&error];
NSAssert(persistentStore, @"Failed to add persistent store with error: %@", error);

// Create the managed object contexts
[managedObjectStore createManagedObjectContexts];

managedObjectStore.managedObjectCache = [[RKInMemoryManagedObjectCache alloc] initWithManagedObjectContext:managedObjectStore.persistentStoreManagedObjectContext];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

RestKit:无法使用 coredata 执行映射 的相关文章

  • 为arm64或arm7s编译OpenSSL FIPS功能库时出现未知的cpu类型

    我可以成功 至少没有警告并生成 a 文件 针对 arm7 x86 64 和 i386 进行编译 当我编译arm64时 我得到Unknown cpu type 100000c no adjustments made 当我编译arm7s时 我得
  • Swift:协议、结构、类

    我开始学习 Swift 语言 但在理解协议 结构和类方面遇到了困难 我来自 Android 方面的编程 所以我相信 Swift 协议基本上是 Java 接口 其中每一个的正确用例是什么 这些类比并不 完全 正确 但这就是我所理解的要点 是的
  • 命令 /Applications/Xcode-beta.app/Contents/Developer/usr/bin/atool 失败,退出代码 255

    它发生在新的 Xcode7 beta 中 CompileAssetCatalog Users admin Library Developer Xcode DerivedData InstaAd ddgdnbxlpxipirebpndfmgr
  • 在 Swift 中以编程方式为 iOS 制作带有名字首字母的图像,例如 Gmail

    我需要在 UITableView 中显示与其姓名相对应的每个用户的个人资料图片 在下载图像之前 我需要显示一张带有他名字的第一个字母的图像 就像在 GMail 应用程序中一样 如何在 Swift for iOS 中以编程方式执行此操作 不需
  • 如何在Sprite Kit中实现鼠标关节?

    我已经在 iOS 上用 Cocos2d Box2d 编写了拖放功能的工作实现 我需要将它移植到 Sprite Kit 逻辑非常基本 当用户触摸屏幕时 找到手指下的精灵 在找到的精灵和场景的物理体之间创建鼠标关节 将关节的目标设置为触摸位置
  • UILabel UILongPressGestureRecognizer 不起作用?

    我怎样才能得到UILongPressGestureRecognizer在 uilabel 当我实现以下代码时 它不会调用该函数 那么请告诉我我做错了什么 UILongPressGestureRecognizer longPress UILo
  • 从 IOS 应用程序注销的完美方法是什么?

    下面的代码可以工作 但有一个错误 场景是 我首先登录进入应用程序系统 登录成功后 应用程序将设置 UserDefaults UserId 之后 我可以使用存储的 UserId 导航应用程序视图 一旦我进入设置和选项卡注销 这将清除 User
  • ReactNative - 未处理的 JS 异常:SyntaxError

    当我尝试在 iOS 8 上启动 RUN 应用程序时 出现这个奇怪的错误 Unhandled JS Exception SyntaxError仅此而已 不再有更多信息 有any1偶然发现这个问题吗 在 iOs 9 上应用程序运行正常 x代码版
  • HTML 分页

    有没有html分页的开源项目 我正在为 iPhone 开发一个应用程序 我想在 UIWebView 上显示 HTML 文件 并且不希望用户向下滚动以查看屏幕上未显示的剩余内容 我想在第二个 UIWebView 上显示剩余的内容 我怎样才能做
  • 如何解决malloc_error_break?

    我在 iOS 3 0 模拟器上遇到此错误 但在 3 1 3 和 3 2 模拟器上没有遇到此错误 创建符号断点后malloc error break 我在日志中看到了这一点 Session started at 2010 02 13 19 1
  • 以弯曲格式显示文本

    我正在寻找以曲线格式绘制一些文本 我使用哪个控件并不重要 UITextField UILabel or UITextView 我只想显示如图所示的文本 仍在寻找解决方案 请帮忙 查看此链接 https nodeload github com
  • Cordova 在 iOS 中显示警告“线程警告:[您的函数]花了 [n] 毫秒”

    THREAD WARNING Console took 81 661865 ms Plugin should use a background thread 在跑步的时候iOS 手机差距项目 对于一些剩余的插件 例如地理位置和文件系统 也是
  • 如何将 LC_LOAD_DYLIB 命令插入 Mach-O 二进制文件或将静态库加入现有二进制文件 (IOS)

    这是我第一次在 stackoverflow 上提问 我很绝望 我的任务是加载 dylib 或将静态库加入到 IOS 设备的现有可执行文件中 我将使用static void attribute constructor initialize v
  • 可以获取位置,但无法获取航向

    我目前只使用模拟器 但我在 iOS 模拟器上快速使用 CoreLocation 时遇到问题 我得到此代码打印的位置更新 但从未得到标题 我不想当然 我正在尝试制作一个指南针类型的应用程序 它将显示目标的方位 class CompassVie
  • XCode 4.5 给我“SenTestingKit/SenTestKit.h”文件未找到,但适用于 4.4.1

    我刚刚安装了 XCode 4 5 它在我现有的项目之一上给了我一个 SenTestingKit SenTestingKit h 文件未找到错误 此错误仅发生在 XCode 4 5 中 但它在 4 4 1 上编译正常 我已经检查过SenTes
  • ios - 在哪里放置 s.static_framework = true

    我在 CocoaPods 中的级别为 0 当我使用pod install有一个错误说 The Pods App target has transitive dependencies that include static framework
  • iOS 视图控制器内存在被关闭后未释放

    当用户单击按钮时 它会显示一个带有两个视图控制器的新选项卡栏视图控制器 我是这样做的 ACLevelDownloadController dvc ACLevelDownloadController alloc initWithNibName
  • DatePicker 停止 CoreData 按预期工作

    我有一个应用程序 它保存 UIDatePicker 中的文本和日期 然后在您回到 UIDatePicker 中的该日期时显示该注释 效果很好 只有我发现将 UIDatePicker 日期设置为今天会停止 CoreData 工作 只有当我运行
  • iOS 电池监控 Swift

    我已将监控设置为启用 但模拟器和设备中的电池电量仍然为 1 UIDevice currentDevice batteryMonitoringEnabled true var level UIDevice currentDevice batt
  • 设置/覆盖 UICollectionView 中单元格之间的填充

    我有一个 UICollectionView 但在获取单元格之间的填充时遇到了问题 理论上 我应该能够将屏幕除以 4 并且我可以获得包含 4 个图像的单元格大小 完美地占据屏幕宽度 但是 它选择不这样做 相反 它会创建 3 个具有巨大填充的图

随机推荐

  • 在 docker 容器中挂载带有符号链接的主机目录

    我使用以下参数安装了容器 v home test home test 在主机的 home test 内部有一个指向 mnt 文件夹的符号链接 但是该链接虽然可以看到指向的位置 但在容器内似乎已损坏 root f93f72b45013 var
  • 动态表列

    当我想从仅包含字符串的列表列表 例如来自 csv 的数据 生成表格时 我应该如何进行 列的名称并不重要 从提供的所有示例中 我只看到将表项绑定到特定模型 这不适合那里 因为我有未知的列数和名称 如果您已经知道列名称和数据类型 我建议对其进行
  • 使用带有 IN 子句的 query() 进行 CodeIgniter 数据库查询

    我的模型中有以下代码 sql SELECT t1 t2 FROM Table1 t1 INNER JOIN Table2 t2 ON t1 id t2 id AND t2 title IN AND t1 type ORDER BY t1 i
  • 将现有数据库与 ASP.NET 5 和 EF7(测试版 7)结合使用

    我正在尝试使用 ASP NET 和 EF 7 beta 7 的空模板项目连接到现有数据库 这是我的 project json 的样子 webroot wwwroot userSecretsId aspnet5 Titanes2015 409
  • 如何在 JTextArea 中设置文本格式

    我正在尝试输出多行文本来创建 ASCII 艺术 但是当我使用 JFrame 和 JTextArea 时 它无法正确排列 我正在尝试打印ASCII 艺术圣诞快乐 https i stack imgur com WSsLh png但是当我在新窗
  • 如何通过redirect()传递验证错误数据?

    我有一个包含表单的页面 当任何用户提交它时 数据都会发送到控制器 控制器检查验证 如果有任何错误 它将用户重定向到上一页 包含表单的页面 否则它将数据发送到模型 要从控制器重定向到上一页 如果有任何验证错误 我有以下代码 redirect
  • 调整缩放 Gmaps4Rails

    我正在使用 Gmaps4Rails gem 无法弄清楚如何调整默认缩放设置 在我看来 我有以下代码 我知道这个问题已经被问过并回答过很多次了 但也许我只是没有看到一些东西 有什么建议吗 我错过了一些完全明显的东西吗 我很抱歉重新发布这个问题
  • 为什么 UriInfo.getQueryParameters() 不解码“+”?

    我知道我可以解决这个问题 但是与从参数映射中提取参数 应该根据 javadoc 进行解码 相比 如果使用带注释的查询参数 行为会有所不同 这似乎很奇怪 这是一个错误 还是只是一个怪癖 GET Path Produces MediaType
  • .htaccess 从 GET 变量重定向到 url 字符串

    我需要重定向 search keywords somesearchterm to search somesearchterm 这看起来非常基本 但我已经为此绞尽脑汁一个小时了 感谢您花时间查看此内容 您想使用 mod rewrite 实现所
  • (ROSE 绘图错误)错误:分面变量必须至少有一个值

    我正在尝试使用下面的代码在 R 中绘制每月玫瑰图 但遇到错误 错误 分面变量必须至少有一个值 这是我正在使用的数据 链接到数据 https www dropbox com s spwpoukrli5p715 test csv dl 0 这段
  • 多线程 Python 中的信号处理

    这应该非常简单 我很惊讶我在 stackoverflow 上找不到这个问题的答案 我有一个类似守护程序的程序 需要响应 SIGTERM 和 SIGINT 信号才能与 upstart 良好地配合 我读到 执行此操作的最佳方法是在与主线程不同的
  • 从数组中返回具有最高值的对象

    我想从数组中返回一个属性具有最高值的对象 目前我正在做以下事情 Get VM Sort Object Property ProvisionedSpaceGB Select Object Last 1 这可行但效率低下 我不需要对整个数组进行
  • Apache Phoenix - 如何在 Kerberos 集群上启动查询服务器和瘦客户端

    我最近花了几天时间尝试通过zookeeper运行phoenix Thin queryserver py和sqlline thin py 和thick以保护集群 但是 我无法在安全集群上启动或连接phoenix服务 在phoenix瘦客户端和
  • Mongo Atlas:自定义数据库的连接身份验证失败

    我正在尝试 Mongo Atlas Cloud 我创建了一个集群 并尝试与 mongo shell 连接 与 mongo 驱动程序存在同样的问题 mongo mongodb cluster shard 00 00 mongodb net 2
  • Ruby 读写带有引号的 CSV

    我想读取 csv 行 更新一个字段 然后再次用引号输出该行 Row Example Input gt Joe Blow email protected cdn cgi l email protection Desired Row Examp
  • Cygwin显示进程的cpu使用情况?

    希望这个问题能够得到解决 因为我一直在网上寻找答案 但没有结果 Cygwin 是否有显示 Windows 进程的 cpu 的命令 我知道这个命令top可以显示此信息 但它只显示 Cygwin 进程 而不显示 Windows 还有另一个命令
  • GWT (event.getCharCode) 在 IE 和 Firefox 中的行为不同

    我正在经历tutorial http code google com webtoolkit doc latest tutorial manageevents html可在 GWT 网站上获取 StockWatcher 应用程序并按照步骤 4
  • 读取文本文件作为资源

    我正在尝试从资源中读取文件 words txt 这是一个非常简单但很大 2 MB 的文本文件 我想逐行读取它 我已将文件放入 res raw words txt 中 并尝试使用以下代码打开它 try BufferedReader in ne
  • 获取单元格设置了 WrapText 的行的高度

    我正在尝试计算插入到 Excel 工作表中的行的高度 该行的单元格格式为WrapText true 所以行的高度不是固定的 访问 row Height 将返回 null 我正在考虑使用类似的东西Graphics MeasureString我
  • RestKit:无法使用 coredata 执行映射

    我正在使用rest kit 0 20 3和Xcode 5 如果没有核心数据 我可以执行所有rest kit操作 但是当我使用核心数据尝试它时 我什至无法执行GET由于一些问题 我想不通 我是核心数据的新手 所以请帮忙 这是我的代码 AppD