Tôi có hai NSDictionaries
chứa NSStrings
. Để so sánh hai từ điển này, tôi sử dụng phương pháp isEqualToDictionary:
. Tài liệu trên isEqualToDictionary:
nóiSo sánh các từ điển chứa NSStrings
"Hai từ điển có nội dung ngang nhau nếu mỗi từ khóa có cùng số mục nhập và cho một khóa nhất định, đối tượng giá trị tương ứng trong mỗi từ điển thỏa mãn isEqual: test."
Vì vậy, các chuỗi của tôi được so sánh theo phương pháp isEqual:
.
Câu hỏi đặt ra là:
Làm thế nào để isEqual:
hoạt động cho NSString
?
Ứng dụng có sử dụng isEqual:
từ NSObject
không? Tôi đã đọc rằng isEqual
từ NSObject
chỉ so sánh địa chỉ, sử dụng ==
. Để chứng minh hoặc bác bỏ ý tưởng này tôi đã viết một mẫu:
NSString *str1 = @"sampleString";
NSString *str2 = [NSString stringWithFormat:@"%@", @"sampleString"];
BOOL result = [str1 isEqual:str2];
Các result
là YES
, địa chỉ của str1
và str2
là khác nhau mặc dù.
Vì vậy, nó không sử dụng isEqual:
từ số NSObject
(cái gì?), Hoặc NSObject
's isEqual:
làm điều gì đó phức tạp hơn sau đó chỉ kiểm tra sự bình đẳng của địa chỉ.
Có ai biết nó thực sự hoạt động như thế nào không?
Tại sao bạn không thể sử dụng phương pháp isEqualToString? quá dễ dàng? –
@SamBudda Nó không phải là tôi, đó là NSDictionary sử dụng isEqual: so sánh các yếu tố của nó. – Anastasia