2015年2月9日 星期一

好用的.h property用 convenient method 提供value

.h

// convinent methods
@property (readonly, nonatomic) BOOL isConnected;


.m

-(BOOL)isConnected
{
    return self.currentPeripheral.state == CBPeripheralStateConnected;
}


其實也就是複寫isConnected由property自動生成的getter method啦!

.h的readonly property怎麼write?

對外readonly而內部要write怎辦?

只要在m裡面加上同名的property就好,或是寫上 _propertyNam,前面加上_

原理是加上 _就等於直接存取instance verbel,所以就可以寫值了

平常的dot寫法不行或是[self setPropertyName]不行是因為上面兩種其實都是call method 去寫的,也就是其實是語法糖衣,當你h的宣告為readonly,編譯器不會自動幫你寫上setter,所以用上面兩種不行!

需要直接用instance verbel做寫入~


---------------

當你寫property後,編譯器已經自動幫你寫好setter和getter,還有synthesize ~ 所以可以直接用_去訪問instance verbal.