2010-01-28 48 views
0

我试图避免自我的重新声明,在下面的iphone/Objective C的(简单)的问题

picker2.peoplePickerDelegate = self; 
// showing the picker 
[self presentModalViewController:picker2 animated:YES]; 

为什么我不能只是去像:

[picker2.peoplePickerDelegate presentModalViewController:picker2 animated:YES]; 

问候

回答

0

因为picker2.peoplePickerDelegate在您分配之前可能不是self

(另外,picker2.peoplePickerDelegate不是UIViewController所以发送-presentModalViewController:animated:消息是错误的。)

+0

嗯,我想我感到很困惑这样做,我认为自己正在重新声明,在那里它不是。它是帮助回答我更大的问题在http://stackoverflow.com/questions/2150874/iphone-sdk-bringing-up-viewcontroller-in-shouldcontinueafterselectingperson。 我在联系人列表中遇到了一个视图控制器,我认为它与自我有关。你能看看吗? – oberbaum 2010-01-28 11:10:55

0

嘿,你也应该想到一两件事。

[self presentModalViewController:picker2 animated:YES]; 

它会工作,因为presentmodalviewcontroller是UIViewController类中的方法[picker2.peoplePickerDelegate presentModalViewController:picker2 animated:YES];

的方法和

你试图用(id)类型,即它会从一个NSObject的被inheritting调用它。

希望这会有所帮助。

感谢,

Madhup