Anda harus mendeklarasikan string konstan Anda sebagai berikut:
NSString * const kSomeConstantString = @""; // constant pointer
dari pada:
const NSString * kSomeConstantString = @""; // pointer to constant
// equivalent to
NSString const * kSomeConstantString = @"";
Yang pertama adalah pointer konstan ke NSString
objek, sedangkan yang kedua adalah pointer ke NSString
objek konstan .
Menggunakan NSString * const
mencegah Anda menetapkan kembali kSomeConstantString untuk menunjuk ke NSString
objek yang berbeda .
Metode ini isEqualToString:
mengharapkan argumen tipe NSString *
. Jika Anda meneruskan pointer ke string konstan ( const NSString *
), Anda melewatkan sesuatu yang berbeda dari yang diharapkan.
Selain itu, NSString
objek sudah berubah, sehingga membuatnya const NSString
tidak ada artinya.