1

在 Objective-C 中创建委托时,假设 delegate: id <DelegateName> delegatedelegate' 的类型应该是什么?那么运行po delegete或者po self.delegate在 LLDB 中,预期的结果是什么?

如果它预期是DelegateName,而不是你将如何手动更改它?

编辑:

@protocol NavigationBarDelegate @optional - (void)titleViewClicked:(BOOL)titleClicked; @结尾

poLLDB 中的输出:

(lldb) po self.delegate
(objc_object *) $1 = 0x073d0840 <UINavigationController: 0x73d0840>

结果,委托被发送到UINavigationController与预期类相反的类。

4

1 回答 1

1

类型是id这样的,它可以是任何Objective-C 对象。该<DelegateName>符号意味着对象将符合DelegateName协议,但这不会影响其类型。

于 2012-08-02T11:39:12.263 回答