mirror of
https://github.com/zhigang1992/RestKit.git
synced 2026-04-26 13:55:40 +08:00
Introduced the RKTableController component for iOS.
RKTableController provides a flexible, integrated system for driving iOS table views using the RestKit object mapping engine. Local domain objects can be mapped into table cells within a collection or presented for editing as part of a form. There are three flavors of table controllers available: * Static Tables: RKTableController can be used to render simple static tables that are composed of RKTableItems presented in RKTableSections. Table items can quickly be built and added to a table without a backing model or can have content object mapped into them for presentation. * Network Tables: RKTableController can also render a table with the results of a network load. The typical use case here is to have RestKit retrieve a JSON/XML payload from your remote system and then render the content into a table. * Core Data Tables: RKFetchedResultsTableController can efficiently drive a table view using objects pulled from a Core Data managed object context. Typical use-cases here are for the presentation of large collections that are pulled from a remote system, offering offline access, or speeding up a UI by using Core Data as a fast local cache. RKTableController supports a number of bells and whistles including integrated searching/filtering and pull to refresh.
This commit is contained in:
@@ -28,6 +28,10 @@
|
||||
#import "RKRequest_Internals.h"
|
||||
#import "RKLog.h"
|
||||
|
||||
// Set Logging Component
|
||||
#undef RKLogComponent
|
||||
#define RKLogComponent lcl_cRestKitCoreData
|
||||
|
||||
@implementation RKManagedObjectLoader
|
||||
|
||||
@synthesize objectStore = _objectStore;
|
||||
@@ -203,4 +207,18 @@
|
||||
}
|
||||
}
|
||||
|
||||
- (BOOL)isResponseMappable {
|
||||
if ([self.response wasLoadedFromCache] && self.objectStore.managedObjectCache) {
|
||||
NSFetchRequest* cacheFetchRequest = [self.objectStore.managedObjectCache fetchRequestForResourcePath:self.resourcePath];
|
||||
if (! cacheFetchRequest) {
|
||||
RKLogDebug(@"Skipping managed object mapping optimization -> Managed object cache returned nil cacheFetchRequest for resourcePath: %@", self.resourcePath);
|
||||
return [super isResponseMappable];
|
||||
}
|
||||
NSArray* cachedObjects = [NSManagedObject objectsWithFetchRequest:cacheFetchRequest];
|
||||
[self informDelegateOfObjectLoadWithResultDictionary:[NSDictionary dictionaryWithObject:cachedObjects forKey:@""]];
|
||||
return NO;
|
||||
}
|
||||
return [super isResponseMappable];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
Reference in New Issue
Block a user