0

我正在尝试从 JSON 调用中打印/访问我的(双)值并获取:

[事件纬度]:无法识别的选择器发送到实例 0x8d09970

从同一个对象访问字符串值时,它打印得很好。在调试器中,我看到我的值和 event.latitude 被映射为双精度的 NSCFNumber。我不知道这是否只是我没有正确地投射或声明纬度,还是没有正确映射该值。弦乐工作

这是一些代码:

event.h
@interface Event : NSObject  {
    NSNumber    *latitude;
}

@property (nonatomic, retain) NSNumber *latitude;
@end

ViewController.m 片段

Event *event = (Event *)[eventsArray objectAtIndex:indexPath.row];

static NSNumberFormatter *numberFormatter;
if (numberFormatter == nil) {
    numberFormatter = [[NSNumberFormatter alloc] init];
    [numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
    [numberFormatter setMaximumFractionDigits:3];
}
NSLog(@"Event - %@", event.name );  //This works just fine
NSLog(@"Event - %@", event.latitude );  //This is where I am testing different ways of accessing the latitude
NSLog(@"Event - %@", [numberFormatter stringFromNumber:[event latitude]] );
//NSLog(@"Event - %@", [[event latitude] stringValue] );
NSString *coordinatesString = [[NSString alloc] initWithFormat:@"Lat:%@, Lon:%@",
                               [numberFormatter stringFromNumber:[event latitude]],
                               [numberFormatter stringFromNumber:[event longitude]]];
4

2 回答 2

0

[Event latitude]: unrecognized selector sent to instance 0x8d09970表示 Event 对象没有名为“纬度”的方法。

我建议您首先检查以确保您在任何地方都正确拼写了“纬度”(您可以看五次这种东西,有时却看不到它),并且它是正确(未)大写的。

在那之后,我会说你应该确保你没有以某种方式对“事件”有两种不同的定义。您可以创建 Event 的测试实例并直接访问“纬度”属性以确保一切正常。

于 2012-12-05T23:43:19.937 回答
0

这绝对不是关于铸造的。

您得到的例外是由于缺少latitude实现,您可能忘记或输入错误。

你有没有实现文件@synthesize中的属性?Event.m

于 2012-12-06T00:19:26.510 回答