今天發現一個問題,一個點擊效果在ios8的設備上不起做用,而在其餘設備有做用,真機調試發現:ios
[_delegate performSelector:@selector(setIsEditing:) withObject:@(YES)];個方法在不一樣的設備跟蹤調試時傳過去的值不同,其餘的設備上傳過去的是YES,這臺ios8的設備上傳過去的是NO。因而跟蹤一下發現:spa
- (id)performSelector:(SEL)aSelector withObject:(id)object;調試
方法中當以 [_delegate performSelector:@selector(setIsEditing:) withObject:@(YES)];orm
這種方法傳參數時候,setIsEditing方法-的時候應該這樣寫it
(void)setIsEditing:(id)aIsEditing {io
BOOL bIsSetEdit = [aIsEditing boolValue];form
[self enableEditing:bIsSetEdit];object
_isEditing = aIsEditing;select
} ios8
而不能這樣寫- (void)setIsEditing:(BOOL)aIsEditing {
[self enableEditing:aIsEditing];
_isEditing = aIsEditing;
}。
不然XCode會將參數的值進行強轉,轉換的結果不可知。有多是YES,也有多是NO。