Skip to content

Instantly share code, notes, and snippets.

@libdx
Created August 12, 2015 14:52
Show Gist options
  • Save libdx/160f11b81301ec112b58 to your computer and use it in GitHub Desktop.
Save libdx/160f11b81301ec112b58 to your computer and use it in GitHub Desktop.
@interface MyManagedObjectContext : NSManagedObjectContext
- (instancetype)main;
- (instancetype)newBackground;
- (instancetype)newUI;
- (NSArray *)fetch:(id)query;
- (id)fetchFirst:(id)query;
@end
@interface MyQuery : NSObject
@property (nonatomic, strong) NSEntityDescription *entity;
@property (nonatomic, strong) NSPredicate *predicate;
@end
@interface NSManagedObject ()
+ (MyQuery *)any;
+ (MyQuery *)all;
+ (MyQuery *)match:(id)predicate, ...;
@end
@interface Person : NSManagedObject
@end
static NSString *kNameAttr = @"name";
void sample() {
MyManagedObjectContext *context;
Person *any = [context fetchFirst:Person.any];
NSArray *johns = [context fetch:[Person match:@"%K = %@", kNameAttr, @"John"]];
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment