2012-03-22 24 views
6

Rất lạ khi tôi thấy điều này khi gỡ lỗi ứng dụng của mình.Rất lạ -% i không hoạt động với số nguyên,% d đã làm?

int iTag = btnTemp.tag; //btnTemp.tag = 1 
NSString *strFriendID = [NSString stringWithFormat:@"%i",iTag]; 

đã cho tôi strFriendID chuỗi như trống rỗng.

int iTag = btnTemp.tag;  //btnTemp.tag = 1 
NSString *strFriendID = [NSString stringWithFormat:@"%d",iTag]; 

đã cho tôi strFriendID như .

Điều này có thể xảy ra như thế nào?

+2

Đó là * * lạ, bạn có thể xác minh với '[NSString str ingWithFormat: @ "[% d |% i]", iTag, iTag] '- kết quả của điều đó là gì? (Lưu ý sử dụng của cả hai, các "làm việc" đầu tiên, và zomg-I-đã được lừa bảo vệ.) –

+0

Tôi đã kiểm tra nó trong ứng dụng của tôi .. Nó đang làm việc tốt .. Cả hai% d và% i cho tôi 1 ... –

+0

Chính xác Karan. Không biết tại sao. – Nitish

Trả lời

2

tôi không biết lý do tại sao bạn sẽ có được câu trả lời này, nhưng khi tôi đọc câu hỏi của bạn tôi đã cố gắng trong dự án của tôi, nhưng tôi nhận được giá trị

UIButton *btnTemp = [[UIButton buttonWithType:UIButtonTypeCustom] retain]; 
btnTemp.tag = 1; 
int iTag = btnTemp.tag; //btnTemp.tag = 1 
NSString *strFriendID = [NSString stringWithFormat:@"%i",iTag]; 
NSLog(@"Str %@", strFriendID); 
NSString *strFriendID1 = [NSString stringWithFormat:@"%d",iTag]; 
NSLog(@"Str %@", strFriendID1); 

Out Đặt

2012-03-26 10:32:02.899 Leaves[506:f803] Str 1 
2012-03-26 10:32:02.901 Leaves[506:f803] Str 1 

cả mang lại cho tôi 1

1

Theo Apple:

%d, %D and %i all represent Signed 32-bit integers. 

Vì vậy, yeah đó là lạ mà% i không làm việc nhưng nó không quá lạ rằng% d làm việc.

lẽ btnTemp.tag là null ở thời điểm đó

+0

không thể rỗng, nó không phải là một giá trị tham khảo ... – borrrden

+1

Nó không phải là null Mako. – Nitish

+0

Đây là một nhận xét nhiều hơn là một câu trả lời, bạn chỉ cần gõ vào những gì có trong đầu của tác giả. – iNoob

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