kullanılması ancak Use of undeclared identifier 'NSLocalizedString'
ve Too many arguments provided to function-like macro invocation
ile başarısız ayarlandı. Değişkeni kullanarak çalışma kodum var, bu iyi bir şey, sadece diğer durumlarda nasıl önleneceğini bilmeme nedenlerini anlamak istiyorum. Aşağıdaki bildirimleri ileNSLocalizedString - İkinci parametre değişkeni olarak aynı yazılır eğer ikinci parametre bir değişken olarak aktarılırsa çalışıyor, belirli bir mesajda <code>NSLocalizedString</code> kullanıyorum bildirilmemiş tanımlayıcı sorunu
:
NSString *branchTitle = [branchDictionary objectForKey:@"Title"];
NSString *localString = [NSMutableString stringWithFormat:@"%@ node title", branchTitle];
Bu hatasız çalışıyor:
[navItem setTitle:NSLocalizedString(branchTitle, localString)];
... ama bana aynı görünüyor bu, yukarıda belirtilen hatalara başarısız:
[navItem setTitle:NSLocalizedString(branchTitle, [NSMutableString stringWithFormat:@"%@ node title", branchTitle])];
Burada ve başka yerde arama Bir açıklama bulamadım. Her hata iletisinde ve çeşitli NSLocalizedString
sorunlarında bir dizi isabet okudum, ancak bunları birbirine bağlayan hiçbir şey yok. İkinci hata mesajıyla ilgili bulduğum şey, ekstrenizde NSMutableString
mesajının içinde olsa bile, NSLocalizedString
tarafından ek bir parametre olarak görüldüğünü belirterek, clang ve ifade içindeki virgüllerin sayısı ile ilgili bir sorun olabilir. Bu bir anlam ifade ediyor mu?
Soru için önemli değil, ancak bu ifadenin, farklı görünümler için farklılık gösteren bir sözlükten çekilen İngilizce sürümüne göre bir gezinti çubuğu başlığının yerelleştirilmiş sürümünü ayarlaması amaçlanmıştır. NSMutableString
bölümü, İngilizce başlığa dayalı yerelleştirmeyle ilgili yorumu tanımlar.
DÜZENLEME: Bu sorunu kabul edilen yanıt başına çözümledikten sonra, aşağıdan bir başka sorunla karşılaştım. localString
bildirimi, açıkça kullanılmasına rağmen "Unused variable"
derleyici uyarısı üretiyordu. Bu aynı zamanda bir C-makrosu içinde olması ve tamlığı nedeniyle, bu uyarıyı bastırmak için ilgili bir gönderiye bağlantı ekliyorum: How can I get rid of an “unused variable” warning in Xcode
Güzel, yalnızca bir dizi parantez eklemek bunu düzeltir. NSLocalizedString, Objective-C içinde bilerek kullanmış olduğum ilk C-makrosudur, bu yüzden başkaları etrafta dolanırken akılda tutulması gereken iyi bir ipucu. Teşekkürler! –
yardım etmekten memnun oldum! – sergio