Tôi có một lớp học có phương pháp có thể truy cập trả lại số NSString
khi được gọi.Nếu "a == b" là sai khi so sánh hai đối tượng NSString
[MyClass getMyString]
Biến chuỗi trong lớp đó là thực sự được giao trong didSelectRowAtIndexPath:
phần của một bảng như thế này:
myString = cell.textLabel.text;
Khi tôi lấy chuỗi bằng cách gọi phương pháp đó, tôi gán nó vào một chuỗi trong lớp được gọi là nó và so sánh nó với một chuỗi mà tôi đã xác định
NSString *mySecondString;
mySecondString = @"my value";
if(mySecondString == myString){
i = 9;
}
Tôi đã bước qua mã và mỗi khi nó đánh giá câu lệnh if, nó s kips phải qua i=9
và chuyển đến câu lệnh else if
tiếp theo. Tại sao điều này lại là? Tại sao họ không đánh giá được cùng một giá trị? Nếu bạn di chuột qua từng giá trị trong quá trình gỡ lỗi, chúng sẽ hiển thị chúng có cùng giá trị, nhưng mã vì một số lý do không làm như tôi mong đợi và chỉ định 9
đến i
.
Mọi suy nghĩ?
Tôi ngạc nhiên khi tìm kiếm trên trang web này không mang lại bất kỳ kết quả nào. Câu hỏi này đã được hỏi và trả lời nhiều lần trong quá khứ. – dreamlax
Có lẽ tôi đã không hỏi nó đúng cách khi tôi tìm kiếm trước khi tôi hỏi ... - đã thấy rất nhiều câu hỏi mà xử lý với CFString và gán nó cho NSString, nhưng không thấy những gì Kevin Ballard nhanh chóng trả lời dưới đây. Cảm ơn! – MeisterPlans
có thể trùng lặp của [Hiểu so sánh NSString] (http://stackoverflow.com/questions/3703554/understanding-nsstring-comparison) –