Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.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
在使用Xcode进行调试时,当鼠标光标在代码中指向属性值时,是否有办法查看该属性值?_Xcode_Xcode6 - Fatal编程技术网

在使用Xcode进行调试时,当鼠标光标在代码中指向属性值时,是否有办法查看该属性值?

在使用Xcode进行调试时,当鼠标光标在代码中指向属性值时,是否有办法查看该属性值?,xcode,xcode6,Xcode,Xcode6,我不明白为什么,即使在Xcode 6上,我也需要单击self,搜索属性,然后才能看到值。 如果对象有100个属性,那么它非常烦人 我正在寻找一个简单的解决方案,当我将鼠标光标设置在self.someproperty上时, 在“someproperty”上方,我将看到它的值,在任何情况下,NSString,NSArray,等等 谢谢。您可以在控制台中使用lldb的日志功能,这是一个巨大的帮助: 在调试区域的右侧有控制台(这也是所有NSLog输出的位置) 在控制台中,您可以使用命令po(打印对象)和

我不明白为什么,即使在Xcode 6上,我也需要单击
self
,搜索属性,然后才能看到值。 如果对象有100个属性,那么它非常烦人

我正在寻找一个简单的解决方案,当我将鼠标光标设置在
self.someproperty
上时, 在“
someproperty
”上方,我将看到它的值,在任何情况下,
NSString
NSArray
,等等


谢谢。

您可以在控制台中使用lldb的日志功能,这是一个巨大的帮助:

在调试区域的右侧有控制台(这也是所有
NSLog
输出的位置)

在控制台中,您可以使用命令
po
(打印对象)和
print
打印变量的值


您可以在控制台中使用lldb的日志功能,这是一个巨大的帮助:

在调试区域的右侧有控制台(这也是所有
NSLog
输出的位置)

在控制台中,您可以使用命令
po
(打印对象)和
print
打印变量的值


这大概是因为您在上面悬停的“属性”不是真正的变量。它们是访问器方法(通常引用支持实例变量,但不一定如此)的语法糖。这些访问器方法(getter和setter)要么是为您合成的,要么是您手动实现了自己的自定义方法。有关声明属性的更多信息,请参阅Apple核心竞争力文档或Objective-C编程文档中的讨论

考虑下面的
foo
属性。您不能将鼠标悬停在对
self.foo
的引用上,查看您所期望的内容。但是,如果将鼠标悬停在支持属性的实例变量(ivar)上,则可能:

(顺便说一句,请注意上面对
self.foo=…
的引用并没有引用
foo
getter方法,而是实际调用setter方法
setFoo
。因此,让IDE调试器通过悬停在该“属性”上来识别这一点似乎是一个非常重要的练习。)虽然执行在那里暂停,但要知道您想要调用getter来查看值,而不是调用代码行实际引用的setter。)

无论如何,回到IDE,您也可以打开
self
,您也会在那里看到它:

这些技术并不完善(有时调试器会感到困惑),但希望这能说明基本的UI

我猜想您希望它在将鼠标悬停在属性名称上时调用访问器方法。这是否意味着您也希望它调用鼠标恰好悬停在其上的任何随机方法?在纯函数式语言中,这个概念似乎更合理一些,但在过程式语言中,任何方法都可能改变状态变量并产生一些意外后果,这似乎是危险的。我会认为,如果你考虑这样一个特征,它应该需要一些更积极的行动,而不仅仅是徘徊在它上面


无论如何,如果您真的想要此功能,请在提交“功能请求”

这大概是因为您在上面悬停的“属性”不是真正的变量。它们是访问器方法(通常引用支持实例变量,但不一定如此)的语法糖。这些访问器方法(getter和setter)要么是为您合成的,要么是您手动实现了自己的自定义方法。有关声明属性的更多信息,请参阅Apple核心竞争力文档或Objective-C编程文档中的讨论

考虑下面的
foo
属性。您不能将鼠标悬停在对
self.foo
的引用上,查看您所期望的内容。但是,如果将鼠标悬停在支持属性的实例变量(ivar)上,则可能:

(顺便说一句,请注意上面对
self.foo=…
的引用并没有引用
foo
getter方法,而是实际调用setter方法
setFoo
。因此,让IDE调试器通过悬停在该“属性”上来识别这一点似乎是一个非常重要的练习。)虽然执行在那里暂停,但要知道您想要调用getter来查看值,而不是调用代码行实际引用的setter。)

无论如何,回到IDE,您也可以打开
self
,您也会在那里看到它:

这些技术并不完善(有时调试器会感到困惑),但希望这能说明基本的UI

我猜想您希望它在将鼠标悬停在属性名称上时调用访问器方法。这是否意味着您也希望它调用鼠标恰好悬停在其上的任何随机方法?在纯函数式语言中,这个概念似乎更合理一些,但在过程式语言中,任何方法都可能改变状态变量并产生一些意外后果,这似乎是危险的。我会认为,如果你考虑这样一个特征,它应该需要一些更积极的行动,而不仅仅是徘徊在它上面


无论如何,如果您真的想要此功能,请在提交“功能请求”

你是说在调试器中?我是说在实际执行的代码中设置断点的位置。实现类。你是说在调试器中?我是指在实际执行的代码中设置断点的位置。实现类。好吧,这在xcode中是不可能的:/你可以去为它提交一个雷达文件,这样苹果可能会在未来的版本中实现。你可以在控制台中更改一个变量吗?好吧,这在xcode中是不可能的:/你可以去为它提交一个雷达文件,以便应用