需要在restkit配置的App中选择核心数据并发布它

时间:2012-07-16 16:41:18

标签: core-data post boolean restkit predicate

我还没有找到从现有Core Data SQLite DB中选择数据并对其进行POST的示例。根据调试输出,我的核心数据似乎配置正常。我已经设置它显示SQLite操作。当我尝试对布尔属性或加载执行谓词时,它不会给出错误但它会检索零对象。

@interface Offering : NSManagedObject

@property (nonatomic, retain) NSNumber * id;
@property (nonatomic, retain) NSString * name;
@property (nonatomic, retain) NSNumber * uploadToServerRequired; 



#import "AppDelegate.h"
#import <RestKit/RestKit.h>
#import "Offering.h"

@implementation AppDelegate

@synthesize window = _window;
@synthesize managedObjectContext = __managedObjectContext;

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions


    RKObjectManager* manager = 
    [RKObjectManager objectManagerWithBaseURL: [[NSURL  alloc] initWithString:@"http://localhost:8080/anywhereAboutWebServices"] ];
    manager.objectStore = [RKManagedObjectStore objectStoreWithStoreFilename:@"AnywhereAbout2.sqlite"];

 NSError *error;

    NSString *path = [NSHomeDirectory() stringByAppendingPathComponent:@"AnywhereAbout2.sqlite"];
    NSURL *url = [NSURL fileURLWithPath:path];

    NSManagedObjectModel *managedObjectModel = [NSManagedObjectModel mergedModelFromBundles:nil];
    NSPersistentStoreCoordinator *persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:managedObjectModel];
    if (![persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:url options:[NSDictionary dictionaryWithObjectsAndKeys:     [NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption,                                 [NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption, nil] error:&error]);
    else {
        __managedObjectContext = [[NSManagedObjectContext alloc] init];
        [__managedObjectContext setPersistentStoreCoordinator: persistentStoreCoordinator];

    }

    NSArray* objects = [Offering allObjects];
    NSLog(@"We loaded %d objects", [objects count]);

    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"uploadToServerRequired == %@", [NSNumber numberWithBool: (BOOL)1]];


    int count = [filtered count];

1 个答案:

答案 0 :(得分:0)

添加以下内容并开始工作:

NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Offering" inManagedObjectContext:__managedObjectContext];
[request setEntity:entity];

NSError *anyError = nil;
NSArray *fetched = [__managedObjectContext executeFetchRequest:request error: &anyError];
if (fetched == nil) {
     NSLog(@"Error with fetch");
}
NSLog(@"We fetched %d objects", [fetched count]);