Bir dizeyi int'e dönüştürme


87

Bir dizeyi tam sayıya dönüştürmede sorun yaşıyorum. Google'da araştırdım ama bulabildiğim tek şey bir int'i dizeye nasıl dönüştürebileceğim. Başka türlü nasıl yapılacağını bilen var mı? Teşekkürler.

Yanıtlar:



22

Ne dersin

[@"7" intValue];

Ek olarak, eğer istersen NSNumberyapabilirsin

NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter numberFromString:@"7"];

6
good lord NSNumberFormatter karmaşıktır ... yani "özellik tamamlandı".
Dave Dopson

4
Dikkat edin - iOS7'de birinci sınıftan ziyade numberFromStringbir örnek yöntem gibi görünüyor , bu yüzden bunun yerine yapmalısınız . [[NSNumberFormatter new] numberFromString:@"7"];
mgarciaisaia

@mgarciaisaia, stackoverflow.com/questions/719877/…[[[NSNumberFormatter alloc] init] numberFromString:@"7"]; uyarınca
yapmamalıyız

3

Kullanırım:

NSInteger stringToInt(NSString *string) {
    return [string integerValue];
}

Ve tam tersi:

NSString* intToString(NSInteger integer) {
    return [NSString stringWithFormat:@"%d", integer];
}

1
dönüş değerinizi kontrol edin. NSString *
AWF4vk

NSUserDefaults'dan çekilen verileri kullanıyorum, bu yüzden NSString * string =
MacN00b

Bunlardan biri gerçekten işe yarayacak mı? Şüphesiz tanımları bir noktalı virgül gereksinim yoksa kilitlenmesine unrecognized selectoraslında gönderecek çünkü @selector(intToString:)değil @selector(intToString). Elbette bunun yerine böyle olmalı - (NSInteger) stringToInt:(NSString *)string;ve- (NSString *)intToString:(NSInteger)integer;
Paul.

1
İkisi de C işlevi. NSString *@David'in dediği gibi olması gerekiyor .
Espresso

@Espresso alkışlıyor C konusunda geçmişim yok, bu yüzden şimdi daha mantıklı
Paul.


1

Bu, dizeyi int'e dönüştürmek için basit bir çözümdür

NSString *strNum = @"10";
int num = [strNum intValue];

ancak metin alanından değer elde ettiğinizde ,

int num = [txtField.text intValue];

burada txtField bir çıkış olduğunu UITextField


1

Bunun gibi bir şey yapmak zorundaydım ama benim için bir alıcı / ayarlayıcı kullanmak istedim. Özellikle bir metin alanından uzun bir süre dönmek istedim. Diğer cevapların hepsi de işe yaradı, okul projem geliştikçe benimkini biraz uyarladım.

long ms = [self.textfield.text longLongValue];
return ms;

0
NSString *string = /* Assume this exists. */;
int value = [string intValue];

NSUserDefaults'dan çekilen verileri kullanıyorum, bu yüzden NSString * string =
MacN00b

1
NSString * string = [[NSUserDefaults standardUserDefaults] stringForKey: @ "YOUR_KEY"];
Benjamin Mayo

0

Çok kolay..

int (name of integer) = [(name of string, no ()) intValue];


0

Yine başka bir yol: Eğer bir C dizesi ile çalışıyorsanız, örneğin const char *, C native atoi()daha kullanışlıdır.


0

Ayrıca aşağıdaki gibi kullanabilirsiniz:

NSInteger getVal = [self.string integerValue];


0

Bir String numarasını bir Int'ye dönüştürmek için şunu yapmalısınız:

let stringNumber = "5"
let number = Int(stringNumber)

Bu, mevcut bir yanıtın tam bir kopyasıdır.
Pranav Kasetti
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.