2010-04-29 29 views
13

Burada neyi kaçırdığımı bilmiyorum. [NSString stringWithFormat] işlevini kullanarak dizeleri birleştirmeye çalışıyorum. Ben bunu yapıyorum.NSString stringWithFormat

NSString *category = [row objectForKey:@"category"]; 
NSString *logonUser = [row objectForKey:@"username"]; 
user.text = [NSString stringWithFormat:@"In %@ by %@", category, logonUser]; 

Buradaki sorun, her zaman yalnızca bir değişken yazdırmasıdır. "Spor" kategorisinde ve "Leo" logonUser'de "Sporda" yazacak ve kalan metni atlayacağını varsayalım. "Sporda Leo tarafından" yazmalıdır.

+0

ile ilgili sonuçları bildirin. Kategori için bildirim nerede? Bir NSString * olduğundan emin olun ve başka bir şey değil. – lucius

cevap

15

user bir UILabel mı? Metninizin kaydırma veya kırpılmadığından emin olun. UILabel'ı daha büyük yapmayı deneyin.

0

Bu koddaki ilk satırın anlamı nedir? 3. hatta ilgisiz görünüyor?

Hem kategorinin hem de logonUser öğesinin kodda bulunduğu konusunda% 100 emin misiniz? Belki de user.text = satırından sonra bir NSLog ifadesi koyup 3. satırın iyi göründüğü için beklediğiniz değerleri aldığından emin olun.

Düzenleme

Ben

user.text = [NSString stringWithFormat:@"In %@ by %@", @"category", @"logonUser"]; 

için

user.text = [NSString stringWithFormat:@"In %@ by %@", category, logonUser]; 

değiştirmeyi deneyin ve bu In category by logonUser çıktılar görecekti. Çünkü kesinlikle bana doğru görünüyor.

+0

Hata için özür dilerim. Kategori beyanı aşağıdadır. Yanlış çizgiyi yanlışlıkla kopyaladım. NSString * category = [row objectForKey: @ "category"]; Evet, NSLog'u denedim ve dolduruluyorlar. Herhangi bir fikir? – Leo

1

kodu doğru görünüyor: Acaba

u kategori değişkeninde bir satır başı veya ekstra boşluk alıyoruz? Küçük bir etiket durumunda, tam dizeyi göstermeyebilir. Üçüncü satırdaki iki değişkeni değiştirmeyi deneyin ve çıkışın ne olduğunu görün.

"By" bile çıktıdan eksik olduğu konusunda şaşırdım. Kategori değişkeninin değerinin metnin maskelenmesi olduğunu hissediyorum.

+0

Yanıtınız, iş parçacığı başlatıcısının karşılaştığı tüm sorunları kapsar. Cevabınız niçin doğru cevap olarak işaretlenmemiş veya en azından ... ( – winklerrr

5

denemek gerekir:

NSlog(@"In %@ by %@", category, logonUser); 

sorunu kontrol etmek! Hata ayıklama konsolu XD

+0

İyi öneri). NSLog'u denedim ve iki satırda basılıyor. Sanırım kategoride satır başı var. Taşıyıcı dönüşünü ve gereksiz boşlukları nasıl kaldırabilirim? Teşekkürler – Leo

+0

Geç cevap için özür dileriz! Bunu kullanabilirsiniz -> - (NSString *) substringWithRange: (NSRange) aRange Ve aralık için bunu yapabilirsiniz -> NSRange * myRange = NSRangeMake (x, y); –