0

在我的接口头文件中,我有:

@proprty (readwrite, assign) float longitude;

如果我像这样为该属性分配一个值:

loc.longitude = [[NSString stringWithUTF8String:(const char *)attr->children->content] floatValue];

调试器说 [loc longitude] 似乎没有指向有效对象。

但如果我使用

NSLog(@"%f", [[NSString stringWithUTF8String:(const char *)attr->children->content] floatValue]);

浮点值被写入。

我做错了什么,就像没有将值分配给属性?

4

2 回答 2

1

您说“调试器说 [loc longitude] 似乎没有指向有效对象。”</p>

我怀疑您正在尝试使用此调试器命令:

po [loc longitude]

问题是它[loc longitude]确实不是一个 Objective-C 对象。它是一个float. 您需要使用不同的命令来打印它:

p (float)[loc longitude]

或者,在最新版本的 Xcode/lldb 上,您可以直接使用点语法:

p loc.longitude
于 2012-08-21T03:37:59.377 回答
0

确实,[loc longitude]不是对象。这意味着您不能po在调试器中使用;改为使用p

于 2012-08-21T03:37:13.913 回答