Iphone NSManagedObject获取程序/设置程序出现无法识别的选择器错误

Iphone NSManagedObject获取程序/设置程序出现无法识别的选择器错误,iphone,ios,restkit,Iphone,Ios,Restkit,我收到以下错误。我不明白为什么,因为纬度和经度在实现文件中有@dynamic,而且它们不是保留字(据我所知)。我使用的是核心数据 2011-11-06 18:12:23.428 Dark Sky Finder[19407:11903] Creating observation site #1 2011-11-06 18:12:23.431 Dark Sky Finder[19407:11903] -[ObservationSite setLatitude:]: unrecognized sele

我收到以下错误。我不明白为什么,因为
纬度
经度
在实现文件中有
@dynamic
,而且它们不是保留字(据我所知)。我使用的是核心数据

2011-11-06 18:12:23.428 Dark Sky Finder[19407:11903] Creating observation site #1
2011-11-06 18:12:23.431 Dark Sky Finder[19407:11903] -[ObservationSite setLatitude:]: unrecognized selector sent to instance 0x735fdf0
2011-11-06 18:12:23.431 Dark Sky Finder[19407:11903] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[ObservationSite setLatitude:]: unrecognized selector sent to instance 0x735fdf0'
导致错误的代码:

if ([ObservationSite count:nil] == 0)
{
    for (int i = 1; i <= 5; i++)
    {
        NSLog(@"Creating observation site #%i", i);
        ObservationSite *site = [ObservationSite object];
        site.observationSiteID = [NSNumber numberWithInt:i];
        site.name = [NSString stringWithFormat:@"James's Place #%i", i, nil];
        site.address = @"Somewhere";
        site.latitude = [NSNumber numberWithDouble:30.3605+i];
        site.longitude = [NSNumber numberWithDouble:-96.1852+i];
        [[[RKObjectManager sharedManager] objectStore] save];
    }
}

NSFetchRequest *fetchRequest = [ObservationSite fetchRequest];
NSArray *sites = [[ObservationSite objectsWithFetchRequest:fetchRequest] retain];
for (ObservationSite *site in sites)
{
    NSLog(@"Name: %@", site.name);
    NSLog(@"Address: %@", site.address);
    NSLog(@"Latitude: %@", site.latitude);
    NSLog(@"Longitude: %@", site.longitude);
}
观测站
实施文件:

#import "ObservationSite.h"

@implementation ObservationSite

@synthesize coordinate = _coordinate;
@synthesize title = _title;
@synthesize subtitle = _subtitle;

@dynamic observationSiteID;
@dynamic latitude;
@dynamic longitude;
@dynamic address;
@dynamic name;

+ (ObservationSite *)mapAnnotation {
    return [[[self alloc] init] autorelease];
}

+ (ObservationSite *)mapAnnotationWithCoordinate:(CLLocationCoordinate2D)coordinate {
    return [self mapAnnotationWithCoordinate:coordinate title:nil subtitle:nil];
}

+ (ObservationSite *)mapAnnotationWithCoordinate:(CLLocationCoordinate2D)coordinate title:(NSString *)title {
    return [self mapAnnotationWithCoordinate:coordinate title:title subtitle:nil];
}

+ (ObservationSite *)mapAnnotationWithCoordinate:(CLLocationCoordinate2D)coordinate title:(NSString *)title subtitle:(NSString *)subtitle {
    ObservationSite *annotation = [[[self alloc] init] autorelease];
    annotation.coordinate = coordinate;
    annotation.title = title;
    annotation.subtitle = subtitle;
    return annotation;
}

@end

哎呀-我在
ObservationSite
头文件/实现文件中使用的属性名称与数据模型中的不同。我现在将它们重命名为相同的名称,效果很好

#import "ObservationSite.h"

@implementation ObservationSite

@synthesize coordinate = _coordinate;
@synthesize title = _title;
@synthesize subtitle = _subtitle;

@dynamic observationSiteID;
@dynamic latitude;
@dynamic longitude;
@dynamic address;
@dynamic name;

+ (ObservationSite *)mapAnnotation {
    return [[[self alloc] init] autorelease];
}

+ (ObservationSite *)mapAnnotationWithCoordinate:(CLLocationCoordinate2D)coordinate {
    return [self mapAnnotationWithCoordinate:coordinate title:nil subtitle:nil];
}

+ (ObservationSite *)mapAnnotationWithCoordinate:(CLLocationCoordinate2D)coordinate title:(NSString *)title {
    return [self mapAnnotationWithCoordinate:coordinate title:title subtitle:nil];
}

+ (ObservationSite *)mapAnnotationWithCoordinate:(CLLocationCoordinate2D)coordinate title:(NSString *)title subtitle:(NSString *)subtitle {
    ObservationSite *annotation = [[[self alloc] init] autorelease];
    annotation.coordinate = coordinate;
    annotation.title = title;
    annotation.subtitle = subtitle;
    return annotation;
}

@end