makeObjectsPerformSelector用法


makeObjectsPerformSelector
這是數組用的方法,類似於for循環。

makeObjectsPerformSelector:@selector(method:)

意為數組中的每個元素都執行method方法

makeObjectsPerformSelector:@selector(method:) withObject:obj

表示數組中的每個元素都執行method方法,並把obj對象作為參數傳到method方法中。

 

使用該方法時需要注意,withObject的參數需要為對象,而不是基本數據類型等。如想將一個btn數組的按鈕都設為selected,可以用

[self.selectedBtnArr makeObjectsPerformSelector:@selector(setSelected:) withObject:@(YES)];

這是有效的。但若想設置為NO的話,則無效。

[self.selectedBtnArr makeObjectsPerformSelector:@selector(setSelected:) withObject:@(NO)];

這是因為YES和NO都為BOOL類型,設置為YES時,傳遞的為非0的指針,所以會設置 btn.selected = YES
但若設置為NO時,傳遞的仍為非0的指針,所以執行的結果仍是 btn.selected = YES。
此時可以用

[self.selectedBtnArr makeObjectsPerformSelector:@selector(setSelected:) withObject:nil];

來達到 btn.selected = NO 的效果。但不推薦該法,應使用for循環處理。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM