Skip to content

Instantly share code, notes, and snippets.

View gonzalezreal's full-sized avatar

Guille Gonzalez gonzalezreal

View GitHub Profile
NSFetchRequest *fetchRequest = [TGRTweet fetchRequestForAllTweets];
NSArray *tweets = [self.managedObjectContext executeFetchRequest:fetchRequest error:NULL];
@interface TGRManagedObject : NSManagedObject
+ (NSString *)entityName;
+ (NSFetchRequest *)fetchRequest;
+ (id)insertNewObjectInManagedObjectContext:(NSManagedObjectContext *)context;
+ (id)importFromDictionary:(NSDictionary *)dictionary inManagedObjectContext:(NSManagedObjectContext *)context;
- (void)importValuesFromDictionary:(NSDictionary *)dictionary;
+ (NSString *)entityName
{
return NSStringFromClass([self class]);
}
+ (NSFetchRequest *)fetchRequest
{
NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:[self entityName]];
[fetchRequest setFetchBatchSize:25];
#import "TGRManagedObject.h"
@class TGRTweet;
@interface TGRTwitterUser : TGRManagedObject
...
+ (NSFetchRequest *)fetchRequestForTwitterUserWithIdentifier:(NSNumber *)identifier;
+ (id)twitterUserWithIdentifier:(NSNumber *)identifier
inManagedObjectContext:(NSManagedObjectContext *)context;
+ (NSFetchRequest *)fetchRequestForTwitterUserWithIdentifier:(NSNumber *)identifier
{
static dispatch_once_t onceToken;
static NSPredicate *predicateTemplate;
dispatch_once(&onceToken, ^{
predicateTemplate = [NSPredicate predicateWithFormat:@"identifier == $IDENTIFIER"];
});
NSPredicate *predicate = [predicateTemplate predicateWithSubstitutionVariables:
+ (id)twitterUserWithIdentifier:(NSNumber *)identifier inManagedObjectContext:(NSManagedObjectContext *)context
{
NSFetchRequest *fetchRequest = [self fetchRequestForTwitterUserWithIdentifier:identifier];
return [[context executeFetchRequest:fetchRequest error:NULL] lastObject];
}
- (void)importValuesFromDictionary:(NSDictionary *)dictionary
{
self.identifier = dictionary[@"id"];
self.name = dictionary[@"name"];
self.screenName = dictionary[@"screen_name"];
self.imageLink = dictionary[@"profile_image_url"];
}
#import "TGRManagedObject.h"
@class TGRTwitterUser;
@interface TGRTweet : TGRManagedObject
...
+ (NSFetchRequest *)fetchRequestForAllTweets;
+ (id)firstTweetInManagedObjectContext:(NSManagedObjectContext *)context;
+ (id)lastTweetInManagedObjectContext:(NSManagedObjectContext *)context;