2014-10-13 18 views
18

tôi đang gặp khó khăn cố gắng để chạy kiểm tra này do một lỗi trên dòng đầu tiên của mã này cho biết: ThaoThay đổi NSString thành giá trị int?

con trỏ không tương thích để nguyên chuyển đổi khởi tạo 'int' với một biểu của loại 'NSString *'

- (IBAction)Button:(id)sender 
{ 
    int x = TramNumber.text; 
    if (x < 9) 
    { 
    Tramresult.text = [NSString stringWithFormat:@"lol"]; 
    } 
    else 
    { 
    NSLog (@"x is less than 9!"); 
    } 
} 
@end 

Vui lòng trợ giúp. Tôi đang sử dụng iOS và chạy xCode 5.1.1 nếu điều đó có ích.

+0

tôi đề nghị bạn sử dụng 'NSInteger' và không 'int '. 'int' 32 bit và' NSInteger' một typedef cho kích thước bit gốc của hệ thống, do đó 64 trên 63 bit CPU vi 32 trên các hệ thống 32 bit. – rckoenes

+0

Tái tạo một cách đáng kể: 'int x = (NSString *) nil;' Vậy * tại sao * trình biên dịch cảnh báo về điều đó? – user2864740

Trả lời

69

Bạn đang đại diện cho NSString giá trị sai.

Sử dụng mẫu mã này để giải quyết vấn đề của bạn:

int x = [TramNumber.text intValue]; 

Đại diện cho giá trị int từ textfield của bạn.

+0

Cảm ơn, bạn đã giải quyết nó – needshelp

+0

Bạn luôn được chào đón. –

7
int x = [TramNumber.text intValue]; 

Bạn chỉ cần chuyển đổi NSString thành int.

2

Bạn không thể chỉ định văn bản làm số nguyên. Bạn nên đúc NSString để int như thế này:

int x = [TramNumber.text intValue]; 
1
NSString *code = dic[@"code"]; 
    int statusCode = [code intValue]; 

    NSLog(@"%d",statusCode); 

    if(statusCode==1)//........cont... 

Chỉ cần cố gắng mẫu mã này .. Điều này chắc chắn sẽ giúp bạn ... @

Các vấn đề liên quan