gpt4 book ai didi

cocoa - 使用 iOS 5 和 RestKit 设置 CoreData 应用程序的正确方法是什么

转载 作者:行者123 更新时间:2023-12-03 17:04:39 25 4
gpt4 key购买 nike

大家好,我已经使用 iOS5 构建了几个应用程序,现在我将深入研究 CoreData。正确的做法是什么?很多指南引用了旧的 XCode 版本,在项目创建向导中,开发人员可以选择“使用 CoreData”。这样你就可以自动获得对 NSManagedObjectContext 的引用。看来这个选项已经不存在了。所以现在怎么办?我读过有关 UIManagedDocument 的内容,但我不明白它与以下内容有何关系:perpetitiveStoreCoordinator、 ManagedObjectModel 、 ManagedObjectContext 。另外,我需要使用 RestKit 来完成所有这些工作,这会增加人们对正确方法的困惑。我需要有人向我解释或指出正确的方向。谢谢

最佳答案

1 个月前刚开始使用 RestKit/Core Data。我阅读了很多教程来或多或少地熟悉这些内容。我读过的最好的教程之一是:http://mobile.tutsplus.com/tutorials/iphone/advanced-restkit-development_iphone-sdk/

创建新项目时的“使用核心数据”选项,例如使用 RestKit 时,Master-Detail-View 项目模板中的内容没有意义。例如,NSPersistentStoreCoordinator 由 RKManagedObjectStore 管理。 NSManagedObjectContext 在后台自动创建。请参阅随附的示例代码以了解其工作原理。

一个简单的 RestKit 设置如下所示:

objectManager = [RKObjectManager managerWithBaseURLString:@"http://x.y.z.a"];

NSString *databaseName = @"XYZ.sqlite";
managedObjectStore = [RKManagedObjectStore objectStoreWithStoreFilename:databaseName];
objectManager.objectStore = managedObjectStore;

RKManagedObjectMapping *customerMapping = [RKManagedObjectMapping mappingForClass:[Customer class] inManagedObjectStore:objectManager.objectStore];
[customerMapping mapKeyPathsToAttributes:@"Id", @"customerid", nil];
[customerMapping mapKeyPathsToAttributes:@"Name", @"name", nil];
[customerMapping mapKeyPathsToAttributes:@"Firstname", @"firstname", nil];
customerMapping.primaryKeyAttribute = @"customerid";

//[other mappings incl. relationships]

[objectManager.mappingProvider setObjectMapping:reservationMapping forResourcePathPattern:@"/api/xyz"];

可以通过 NSFetechedResultsController 访问 Core Data 中存储的数据:

NSFetchedResultsController *fetchedResultsController;
fetchedResultsController = [Customer fetchAllSortedBy:@"firstname" ascending:YES withPredicate:nil groupBy:@"firstname"];
fetchedResultsController.delegate = self;

关于cocoa - 使用 iOS 5 和 RestKit 设置 CoreData 应用程序的正确方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13417973/

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