NSString @"15"
numaralı bir numaram var. Ben NSUInteger bu dönüştürmek istiyorum ama bunu nasıl bilmiyorum ...NSString için NSUInteger
[string longLongValue]
veya
[string intValue]
ile deneyebilirsiniz
NSString @"15"
numaralı bir numaram var. Ben NSUInteger bu dönüştürmek istiyorum ama bunu nasıl bilmiyorum ...NSString için NSUInteger
[string longLongValue]
veya
[string intValue]
ile deneyebilirsiniz
NSString *str = @"15";
// Extract an integer number, returns 0 if there's no valid number at the start of the string.
NSInteger i = [str integerValue];
Eğer gerçekten bir NSUInteger istiyorsanız, sadece dökme Bu, ama önceden değeri test etmek isteyebilirsiniz.
..
Şu anda seçili olan yanıt NSUInteger için yanlıştır. Corey Floyd, seçilen cevapla ilgili bir yoruma işaret ettiğinden, bu değer INT_MAX değerinden daha büyükse işe yaramaz. Bunu yapmanın daha iyi bir yolu ilgilendiğiniz türü, ör .:
NSString *str = @"15"; // Or whatever value you want
NSNumber *number = [NSNumber numberWithLongLong: str.longLongValue];
NSUInteger value = number.unsignedIntegerValue;
Bütün bu cevaplar 64 bit sistemde yanlış almak için NSNumber üzerinde yöntemlerden birini kullanarak sonra NSNumber ve kullanmaktır. 9223372036854775808 ile
NSScanner *scanner = [NSScanner scannerWithString:@"15"];
unsigned long long ull;
if (![scanner scanUnsignedLongLong:&ull]) {
ull = 0; // Or handle failure some other way
}
return (NSUInteger)ull; // This happens to work because NSUInteger is the same as unsigned long long at the moment.
Testi, imzalı long long
sığmaz.
NSString'den imzasız değerleri okumak için destek istemek için, http://bugreport.apple.com adresini ziyaret edin ve radar: // 2264733 bileşenine karşı "Foundation | X'. –