// 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];
答案 0 :(得分:2)
你可以,它不被认为是良好的做法或风格。它打破了使用属性创建的封装,以及访问者生成的(通常需要的)KVO通知。现代Objective-C实践是使用所有属性,只在必要时访问init,dealloc(如果需要)和惰性访问器方法中的合成ivar。
答案 1 :(得分:1)
实例是Objective-C计划中行动的核心。在创建自己的类时,您将定义的大多数方法都是实例方法;您将在代码中发送的大多数消息都将调用实例方法。
因此,当您创建某个实例(如uibutton,uitext字段)作为您可以访问的属性时 它使用self在your.m文件中的任何位置。但是如果你在一个类中创建它的实例,你只能在那个类中访问它,但不能在外面访问它。
答案 2 :(得分:1)
根据Apple Documentation,如果您从自己的实现中访问对象的属性,在这种情况下,您应该使用self
。