何时在Objective-C中使用self?

时间:2014-12-22 06:39:10

标签: ios objective-c xcode oop self

// apply borders to the buttons

-(void)viewDidLoad
{
    [super viewDidLoad];

    [self.hostGameButton MH_applySnapStyle];
    [self.joinGameButton MH_applySnapStyle];
    [self.singlePlayerGameButton MH_applySnapStyle];
}

我对这段代码很困惑。如果self只是引用该对象的实例,当我们使用@property时,它会创建一个名为_hostGameButton ...等的实例;为什么我们不能只使用这个代码呢? [_hostGameButton MH_applySnapStyle];

3 个答案:

答案 0 :(得分:2)

你可以,它不被认为是良好的做法或风格。它打破了使用属性创建的封装,以及访问者生成的(通常需要的)KVO通知。现代Objective-C实践是使用所有属性,只在必要时访问init,dealloc(如果需要)和惰性访问器方法中的合成ivar。

答案 1 :(得分:1)

实例是Objective-C计划中行动的核心。在创建自己的类时,您将定义的大多数方法都是实例方法;您将在代码中发送的大多数消息都将调用实例方法。

因此,当您创建某个实例(如uibutton,uitext字段)作为您可以访问的属性时 它使用self在your.m文件中的任何位置。但是如果你在一个类中创建它的实例,你只能在那个类中访问它,但不能在外面访问它。

答案 2 :(得分:1)

根据Apple Documentation,如果您从自己的实现中访问对象的属性,在这种情况下,您应该使用self