我認爲這可能是一樣容易寫:
__weak typeof(self) weakSelf = self;
它是一條什麼東西,任何人誰讀你的代碼可以立即明白的樣板一行代碼。如果你使用片段,幾乎不需要花費任何可觀的時間來編寫。
如果您使用宏,最終的代碼長度與原始語句的長度幾乎相同,所以您沒有花費太多時間並且犧牲了可讀性,因爲您仍然需要知道宏的功能。
所以,在我看來(你知道我的意見是什麼),這不是你需要擔心的。試圖簡化它,你什麼也得不到。
編輯
要添加到我的說法。我敢肯定,你的線沿線的多條線路:
@property (strong, nonatomic) UIView *someSubview;
@property (weak, nonatomic) id<SomeDelegateProtocol> delegate;
@property (copy, nonatomic) NSString *someString;
如果你認爲這是一個好主意,有這些宏,所以你可以這樣寫:
propStrong UIView *someSubview;
propWeak id<SomeDelegateProtocol> delegate;
propCopy NSString *someString;
然後繼續前進併爲你的weakSelf聲明實施一個宏。
但是,如果您認爲原始版本只是常見的樣板文件,如果編寫時間稍長一點,並且每個人都可以乍一看就能理解,那麼我認爲您不必擔心未裝飾的weakSelf聲明。