Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 目标C将字符*转换为浮点并设置为属性_Iphone_Objective C_Ios_Properties_Casting - Fatal编程技术网

Iphone 目标C将字符*转换为浮点并设置为属性

Iphone 目标C将字符*转换为浮点并设置为属性,iphone,objective-c,ios,properties,casting,Iphone,Objective C,Ios,Properties,Casting,在我的接口头文件中,我有: @proprty (readwrite, assign) float longitude; 如果我像这样为该属性赋值: loc.longitude = [[NSString stringWithUTF8String:(const char *)attr->children->content] floatValue]; 调试器说[loc longitude]似乎没有指向有效的对象 但是如果我使用 NSLog(@"%f", [[NSString strin

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

@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]);
将写入浮点值


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

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

您说过“调试器说[loc longitude]似乎没有指向有效的对象。”

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

po [loc longitude]
问题是
[loc longitude]
实际上不是Objective-C对象。它是一个
浮点
。您需要使用不同的命令来打印它:

p (float)[loc longitude]
或者,在最新版本的Xcode/lldb上,您可以直接使用点语法:

p loc.longitude

Protip:使用lldb(而不是gdb),你实际上可以在任何地方使用
p
,你可以使用
po
。谢谢伙计们,我是个白痴,我在使用po,属性删除中需要读写吗?或者我可以承认吗?读写是属性的默认行为。你不需要定义读写。谢谢伙计们,我是个白痴,我在使用po,在财产减免中需要读写吗?或者我可以承认吗?