【问题标题】:Can not evaluate value of the property via lldb无法通过 lldb 评估属性的值
【发布时间】:2013-09-18 14:19:41
【问题描述】:

在我的班级我有一个财产

@property (nonatomic, retain) UIBarButtonItem *allMediaButton;

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

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

我尝试了不同的方式:

(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 @() 也不起作用:

(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

【问题讨论】:

    标签: ios objective-c xcode lldb


    【解决方案1】:

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

    另外一件非常重要的事情是尝试执行以下操作以在不强制转换的情况下访问属性

    po @([[[appdelegate detailViewController] allMediaButton] isEnabled])
    

    这应该适合你

    【讨论】:

    • 我也尝试过 expr 命令来评估值。也没有成功。
    • 试试“po [NSNumber numberWithBool:is_enabled_vaue_here]”
    • 最简单的方法就在 NSLog:(@"isEnableValue = %@", [[[appdelegate detailViewController] allMediaButton] isEnabled] ?@"YES" : @"NO");
    • NSLog(appdelegate.detailViewController.allMediaButton.isEnabled ? @"Yes" : @"No");效果很好,但问题是使用 lldb
    【解决方案2】:

    代替

    po @(scalar)
    

    使用

    p scalar
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-12
      • 1970-01-01
      • 2011-06-30
      相关资源
      最近更新 更多