SORU
18 NİSAN 2013, PERŞEMBE


Neden NSİnteger bir değişken uzun biçim bir argüman olarak kullanılan dökme olmak zorunda mı?

NSInteger myInt = 1804809223;
NSLog(@"%i", myInt); <==== 

Yukarıdaki kod bir hata üretir:

Values of type "NSInteger" should not be used as format arguments: add an explicit cast to 'long' instead.

NSLog doğru mesaj aslında NSLog(@"%lg", (long) myInt); Neden değerini görüntülemek istiyorum eğer uzun myİnt tamsayı değeri dönüştürmek zorunda mıyım?

CEVAP
18 NİSAN 2013, PERŞEMBE


Bu platformda NSInteger long olarak tanımlanır ve bir 64-bit tamsayı, çünkü eğer X (64-bit) derleme OS eğer bu uyarı alırsın. %i biçimini, diğer taraftan, 32-bit int,. Biçimi ve gerçek parametre boyutu eşleşmiyor.

NSInteger 32-bit veya 64-bit platforma bağlı olduğundan, derleyici önerir long bir döküm genellikle eklemek için.

Güncelleme:İOS 7 64-bit de destekler beri, derlerken aynı uyarı alabilirsiniz iOS için.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • audivila

    audivila

    5 HAZİRAN 2009
  • Defence Videos

    Defence Vide

    13 Mayıs 2013
  • Photoshop Pro Help

    Photoshop Pr

    1 Ocak 2007