我正在尝试从JSON调用中打印/访问我的(double)值并获取:
[事件纬度]:无法识别的选择器发送到实例0x8d09970
从同一个对象访问字符串值时,它打印得很好。在调试器中,我看到我的值和event.latitude被映射为来自double的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]]];
答案 0 :(得分:0)
[Event latitude]: unrecognized selector sent to instance 0x8d09970
表示Event对象没有名为“latitude”的方法。
我建议你先检查一下,确保你在任何地方正确拼写“纬度”(你可以看五次,有时候看不到它),并且它是正确的(非)大写的。
之后我会说你应该确保你不会以某种方式对“事件”有两种不同的定义。您可以创建Event的测试实例并直接访问“latitude”属性以确保一切正常。
答案 1 :(得分:0)
这绝对不是关于施法。
您获得的例外原因是由于缺少latitude
实施,您可能会忘记或输入错误。
您@synthesize
实施文件中的Event.m
属性了吗?