Bạn nên khai báo chuỗi hằng của bạn như sau:
NSString * const kSomeConstantString = @""; // constant pointer
thay vì:
const NSString * kSomeConstantString = @""; // pointer to constant
// equivalent to
NSString const * kSomeConstantString = @"";
Cái trước là một con trỏ không đổi đến một NSStringđối tượng, trong khi cái sau là con trỏ tới một NSStringđối tượng không đổi .
Việc sử dụng NSString * constngăn không cho bạn gán lại kSomeConstantString để trỏ đến một NSStringđối tượng khác .
Phương thức này isEqualToString:dự kiến một đối số của kiểu NSString *. Nếu bạn chuyển một con trỏ tới một chuỗi không đổi ( const NSString *), bạn đang truyền một cái gì đó khác với mong đợi.
Bên cạnh đó, NSStringcác đối tượng đã là bất biến, vì vậy làm cho chúng const NSStringlà vô nghĩa.