SORU
4 HAZİRAN 2013, Salı


objective c örtük dönüştürme tamsayı kaybeder hassas 'NSUİnteger' (nam-ı diğer 'imzasız') uzun '' uyarı int

Bazı egzersizleri çalışıyorum ve durumları: bir uyarı var

örtük dönüştürme tamsayı hassas kaybeder '('imzasız uzun')'' . int aka' NSUİnteger

Bu çaylak değilim ve çok teşekkürler.. herhangi bir yardım seviniriz.

#import <Foundation/Foundation.h>

int main (int argc, const char * argv[])

{
    @autoreleasepool {


        NSArray *myColors;

        int i;
        int count;

        myColors = @[@"Red", @"Green", @"Blue", @"Yellow"];

        count = myColors.count; //  <<< issue warning here

        for (i = 0; i < count; i  )

        NSLog (@"Element %i = %@", i, [myColors objectAtIndex: i]);

    }


return 0;

}

Screenshot

CEVAP
4 HAZİRAN 2013, Salı


NSArray verir NSUInteger ve 64-bit OS X platformu count yöntemi

  • NSUInteger unsigned long ve . olarak tanımlanır
  • unsigned long 64-bit işaretsiz tamsayı.
  • int 32-bit bir tamsayı.

int "küçük NSUInteger, Bu nedenle derleyici uyarı daha" veri türü. bir çok

Ayrıca NSUInteger "temel Veri Türleri Referans":

32-bit uygulamalar oluştururken, 32-bit işaretsiz bir NSUİnteger. tamsayı. Bir 64-bit uygulama davranır 64-bit işaretsiz olarak NSUİnteger tamsayı.

Bu derleyici uyarı düzeltmek için, ya count yerel değişken olarak bildirebilirsiniz

NSUInteger count;

ya da (eğer dizinizi asla daha fazla 2^31-1 elementler daha içerir!) eminseniz, açık bir tonunu ekleyin:

int count = (int)[myColors count];

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • celebrateubuntu

    celebrateubu

    23 Mayıs 2011
  • discokatze

    discokatze

    23 EYLÜL 2009
  • pilslajt

    pilslajt

    20 HAZİRAN 2008