首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法通过lldb计算属性的值。

无法通过lldb计算属性的值。
EN

Stack Overflow用户
提问于 2013-09-18 14:19:41
回答 2查看 832关注 0票数 0

在我的课堂上,我有一项财产

代码语言:javascript
复制
@property (nonatomic, retain) UIBarButtonItem *allMediaButton;

在我的代码中,我使用setEnabled: setter启用和禁用此控件。

但是,在调试窗口中,我无法检查属性值。

我尝试了不同的方法:

代码语言:javascript
复制
(lldb) po (UIBarItem*)appdelegate.detailViewController.allMediaButton
(UIBarItem *) $1 = 0x08302ed0 <UIBarButtonItem: 0x8302ed0>

(lldb) po (UIBarItem*)appdelegate.detailViewController.allMediaButton.enabled
error: property 'enabled' not found on object of type 'UIBarButtonItem *'
error: 1 errors parsing expression

(lldb) expr (UIBarItem*)appdelegate.detailViewController.allMediaButton.enabled
error: property 'enabled' not found on object of type 'UIBarButtonItem *'
error: 1 errors parsing expression

(lldb) expr ((UIBarItem*)appdelegate.detailViewController.allMediaButton).enabled
error: property 'enabled' not found on object of type 'UIBarItem *'
error: 1 errors parsing expression

(lldb) expr ((UIBarItem*)appdelegate.detailViewController.allMediaButton).enabled
error: property 'enabled' not found on object of type 'UIBarItem *'
error: 1 errors parsing expression

(lldb) po ((UIBarItem*)appdelegate.detailViewController.allMediaButton).enabled
error: property 'enabled' not found on object of type 'UIBarItem *'
error: 1 errors parsing expression

(lldb) po ((UIBarItem*)appdelegate.detailViewController.allMediaButton).isEnabled
error: property 'isEnabled' not found on object of type 'UIBarItem *'
error: 1 errors parsing expression

(lldb) expr ((UIBarItem*)appdelegate.detailViewController.allMediaButton).isEnabled
error: property 'isEnabled' not found on object of type 'UIBarItem *'
error: 1 errors parsing expression

(lldb) expr appdelegate.detailViewController.allMediaButton.isEnabled
error: property 'isEnabled' not found on object of type 'UIBarButtonItem *'
error: 1 errors parsing expression

(lldb) po  appdelegate.detailViewController.allMediaButton.isEnabled
error: property 'isEnabled' not found on object of type 'UIBarButtonItem *'
error: 1 errors parsing expression

(lldb) po  appdelegate.detailViewController.allMediaButton.enabled
error: property 'enabled' not found on object of type 'UIBarButtonItem *'
error: 1 errors parsing expression

(lldb) expr  appdelegate.detailViewController.allMediaButton.enabled
error: property 'enabled' not found on object of type 'UIBarButtonItem *'
error: 1 errors parsing expression

我怎样才能看到财产的价值?

更新: po @()也不起作用:

代码语言:javascript
复制
(lldb) po  @([[[appdelegate detailViewController] allMediaButton] isEnabled])
error: no known method '-isEnabled'; cast the message send to the method's return type
error: 1 errors parsing expression

(lldb) po  @([(UIBarItem)[[appdelegate detailViewController] allMediaButton] isEnabled])
error: C-style cast from 'UIBarButtonItem *' to 'UIBarItem' is not allowed
error: 1 errors parsing expression

(lldb) po  @([(UIBarItem*)[[appdelegate detailViewController] allMediaButton] isEnabled])
error: no known method '-isEnabled'; cast the message send to the method's return type
error: 1 errors parsing expression

(lldb) po  @([((UIBarItem*)[[appdelegate detailViewController] allMediaButton]) isEnabled])
error: no known method '-isEnabled'; cast the message send to the method's return type
error: 1 errors parsing expression
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-06 13:17:37

而不是

代码语言:javascript
复制
po @(scalar)

使用

代码语言:javascript
复制
p scalar
票数 0
EN

Stack Overflow用户

发布于 2013-09-18 14:29:18

您不能(po)这样打印对象,因为实际上enabled属性不是对象类型,而是标量。你可以试试po @( your scalar value here )

另一件非常重要的事情是,尝试执行以下操作以获得对属性的访问,而无需强制转换

代码语言:javascript
复制
po @([[[appdelegate detailViewController] allMediaButton] isEnabled])

那应该对你有用

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18874762

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档