2011-01-21 27 views
7

Làm cách nào để lưu trữ các giá trị "int" trong một số NSMutableArray hoặc NSMutableDictionary? Các sự cố mãn tính với dữ liệu JSON có dạng số nguyên.Làm cách nào để lưu trữ các giá trị "int" trong NSMutableArray * hoặc NSMutableDictionary *? Các sự cố mãn tính với dữ liệu JSON có dạng số nguyên.

Tôi có nên cố gắng lưu trữ các số nguyên này dưới dạng các đối tượng NSNumber hoặc chỉ là các chuỗi chứa số nguyên không?

Làm thế nào nguy hiểm là nó để làm một (int) chuyển đổi "thô" trên các con trỏ nếu tôi biết các giá trị sẽ luôn là số tự nhiên (số> = 0 trong đó có không cho null.)

Các số nguyên tôi m luôn hoạt động với ID khóa ngoài của cơ sở dữ liệu.

Trả lời

22

Sử dụng NSNumber như thế này:

int yourInt = 5; 
[myMutableArray addObject:[NSNumber numberWithInt:yourInt]]; 

Hoặc sử dụng cú pháp Objective C hiện đại, bạn có thể sử dụng sau đây cho các biểu thức:

[myMutableArray addObject:@(2 + 3)]; 

Hoặc cho số đơn lẻ:

[myMutableArray addObject:@5]; 
4

Sử dụng NSNumber đối tượng (ví dụ sử dụng [NSNumber numberWithInt:value])

2

Bạn cần sử dụng NSNumber, như những người khác đã nói hoặc sử dụng NSString với chuỗi đại diện cho số. Nó thực sự không quan trọng, nhưng NSNumber sẽ hiệu quả hơn.

Bạn không thể chỉ cần ném vào một int, để nó được hiểu là con trỏ và sau đó truyền trở lại trên đường ra. Lý do là đối tượng (rằng int sẽ được hiểu là con trỏ đến) sẽ được gửi thông báo retain khi nó được thêm vào mảng và điều này chắc chắn sẽ gây ra sự cố vì đó sẽ là một con trỏ không hợp lệ.

2

Bạn cũng có thể sử dụng:

[myDict setObject:[NSNumber numberWithInt:anInteger] forKey:@"MyInteger"]; 
0

Bạn cũng có thể thêm giá trị như thế này

NSMutableArray * giá trị = [NSMutableArray alloc] init];

[giá trị addObject: [Số NSNumberWithInt: 23]];

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