2011-12-22 39 views
7

Tôi có một NSMutableArraythêm đối tượng NSInteger để NSMutableArray

@interface DetailViewController : UIViewController <UITableViewDelegate, UITableViewDataSource> { 

NSMutableArray *reponses; 
} 
@property (nonatomic, retain) NSMutableArray *reponses; 

@end 

và tôi đang cố gắng để thêm vào mảng NSInteger đối tượng của tôi:

@synthesize reponses; 



NSInteger val2 = [indexPath row]; 
[reponses addObject:[NSNumber numberWithInteger:val2]]; 
NSLog(@"the array is %@ and the value is %i",reponses, val2); 

nó sẽ không làm việc đối tượng đã không được thêm vào mảng, đây là giao diện điều khiển hiển thị:

the array is (null) and the value is 2 

Trả lời

4

Bạn chưa khởi tạo mảng, do đó, vẫn còn nil khi bạn đang cố gắng thêm vào nó.

self.responses = [NSMutableArray array]; 
//now you can add to it. 
+0

đúng thx –

1

Bạn chưa khởi tạo mảng phản hồi. Trong mã của bạn, có thể là viewDidLoad, làm:

reponses = [[NSMutableArray alloc] init]; 

Sau đó thêm đối tượng vào mảng của bạn.

NSInteger val2 = [indexPath row]; 
[self.reponses addObject:[NSNumber numberWithInteger:val2]]; 

Điều đó sẽ hiệu quả.

8

@Omz: là đúng. Hãy chắc chắn rằng bạn có mảng được phân bổ và khởi tạo. Vui lòng kiểm tra mã sau đây

NSMutableArray *array = [[NSMutableArray alloc] init]; 
NSInteger num = 7; 
NSNumber *number = [NSNumber numberWithInt:num]; 
[ar addObject:number]; 
NSLog(@"Array %@",array); 

Tôi đã kiểm tra điều này và hoạt động. Nếu không cần array, hãy đảm bảo bạn release nó.

+0

cho những người mới (tôi), để chuyển đổi NSNumber quay lại NSInteger (khi truy xuất thông tin từ mảng), 'NSInteger num = [number integerValue];' (cảm ơn 7KV7) – tmr

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