Files
RestKit/Code/Three20/RKManagedObjectTTTableItem.m
Blake Watters 3d0f0ab39e 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.
2012-02-10 16:30:54 -05:00

61 lines
1.2 KiB
Objective-C

//
// RKManagedObjectTTTableItem.m
// RestKit
//
// Created by Jeff Arena on 3/25/11.
// Copyright 2011 Two Toasters. All rights reserved.
//
#import "RKManagedObjectTTTableItem.h"
#import <Three20UI/Three20UI+Additions.h>
#import "RKLog.h"
// Set Logging Component
#undef RKLogComponent
#define RKLogComponent lcl_cRestKitThree20
@implementation RKManagedObjectTTTableItem
@synthesize managedObject = _managedObject;
+ (id)itemWithManagedObject:(NSManagedObject*)managedObject {
RKManagedObjectTTTableItem* item = [[[self alloc] init] autorelease];
item.managedObject = managedObject;
item.URL = [managedObject URLValueWithName:@"show"];
return item;
}
- (id)init {
if (self = [super init]) {
_managedObject = nil;
}
return self;
}
- (void)dealloc {
[_managedObject release];
_managedObject = nil;
[super dealloc];
}
#pragma mark -
#pragma mark NSCoding
- (id)initWithCoder:(NSCoder*)decoder {
if (self = [super initWithCoder:decoder]) {
self.managedObject = [decoder decodeObjectForKey:@"managedObject"];
}
return self;
}
- (void)encodeWithCoder:(NSCoder*)encoder {
[super encodeWithCoder:encoder];
if (self.managedObject) {
[encoder encodeObject:self.managedObject forKey:@"managedObject"];
}
}
@end