类方法中使用self会是什么结果,下午在编码中遇到这个问题:“在类方法中直接使用了self,导致函数没有被调用。”然后,顺便研究了一下,在类(或实例)方法中self是如何表现的。
● 第二、在类(或实例)方法中使用self调用方法(如果是错误的使用,编译器会给出编译错误)。
编译器提示开发者:把Class当做TabBarController使用了
另外一种情况:如果参数是id类型,那么编译器不报错。如下代码:+ (void)goToInfoPage{ RequestItem *requestItem = [[RequestItem alloc] initWithOwner:[TabBarController sharedInstance]];/*使用self可以编译,但达不到预期效果*/ [requestItem setDelegateTarget:[TabBarController sharedController] /*使用self可以编译,但达不到预期效果*/ succeedMethod:@selector(requestInfoSuccess:) failedMethod:@selector(requestInfoFailure:)]; }
————使用self———— (lldb) po delegate TabBarController ————使用[TabBarController sharedInstance]———— (lldb) po delegate <TabBarController: 0x18952020>
原文地址:http://blog.csdn.net/hherima/article/details/45034107