我有一個關於聲明塊作爲變量的最佳做法的問題。將Objective-C塊聲明爲變量的最佳做法
最初我寫了這樣的我塊變量:
id actionHandler = ^(UIAlertAction * action) {
// Handling code
};
供以後使用像這樣:
UIAlertAction *action = [UIAlertAction actionWithTitle:@"Title"
style:UIAlertActionStyleDefault
handler:actionHandler];
但是,當我遇到Apple's Working With Blocks指導來了,我看見我可以重寫它像這樣:
void (^actionHandler)(UIAlertAction * action) = ^(UIAlertAction * action) {
// Handling code
};
這是「正確的」方式來聲明它嗎?這在我看來並不可讀,但我對Objective-C沒有太多的經驗。那麼將塊聲明爲變量的最佳做法是什麼?
編輯:好了,感謝所有的澄清!定義typedef
爲shownamin-negm-awad和其他似乎也是一種很好的替代方法。
你也可以考慮使用'typedef'。參見例如http://stackoverflow.com/questions/8956921/setting-up-a-block-property-in-custom-class/8956967#8956967 –