Tôi khá mới với mục tiêu-c và cố gắng tạo một ứng dụng nhỏ cho iphone.
Tôi sắp hoàn thành bên cạnh lỗi nhỏ này ở đây. Trên thực tế, tôi đã tìm kiếm giờ với google để tìm một giải pháp thích hợp nhưng tiếc là tôi không thể tìm thấy một giải pháp hoạt động.
Tôi đang sử dụng hướng dẫn này ở đây để xây dựng một UITableView: UITableView Tutorial Thông báo lỗi đầy đủ trông như thế này:Mục tiêu-c "phương pháp đột biến được gửi đến đối tượng bất biến" lỗi
* Chấm dứt ứng dụng do ngoại lệ còn tự do 'NSInternalInconsistencyException', lý do: '* - [ NSCFArray insertObject: atIndex:]: phương pháp biến đổi gửi đến đối tượng bất biến'
Đây là dữ liệu điều khiển Tiêu đề: MyLinksDataController.h
@interface MyLinksDataController : NSObject {
NSMutableArray *tableList; //<---important part
}
- (unsigned)countOfList;
- (id)objectInListAtIndex:(unsigned)theIndex;
- (void)addData:(NSString *)data; //<---important part
- (void)removeDataAtIndex:(unsigned)theIndex;
@property (nonatomic, copy, readwrite) NSMutableArray *tableList; //<---important part
.....
Và Data Phương pháp điều khiển: MyLinksDataController.m
#import "MyLinksDataController.h"
@implementation MyLinksDataController
@synthesize tableList;
- (id)init {
if (self = [super init]) {
NSLog(@"Initilizing DataController");
//Instantiate list
NSMutableArray *localList = [[NSMutableArray alloc] init];
self.tableList = [localList copy];
[localList release];
//Add initial Data
[self addData:@"AAAAAAAAAAAAAA"];
[self addData:@"BBBBBBBBBBBBBB"];
}
return self;
}
----------------------------- - ở bên trong mã nguồn ---------------------------------
- (void)addData:(NSString*)data; {
[tableList addObject:data]; //<---- here the app crashes
}
Tôi sẽ khá nhiều đánh giá cao sự giúp đỡ nào.
Cảm ơn bạn đã hỗ trợ trước.
Daniel
Nếu một tài sản bản sao được thực sự kêu gọi, sau đó thay thế một giữ lại tài sản sẽ là một giải pháp nghèo. Vì không có từ khóa mutablecopy, khai báo các tài sản như bản sao, nhưng viết accessor của riêng bạn thay vì sử dụng accessors tổng hợp. –
Điểm tốt. Tôi cũng muốn nói rằng tôi hầu như không bao giờ thấy các đối tượng quảng cáo thuộc tính 'NSMutableArray'. Các purist trong tôi sẽ muốn nhìn thấy một setter tùy chỉnh lưu trữ một bản sao có thể thay đổi của đối tượng và một getter tùy chỉnh mà trả về một bản sao bất biến autoreleased. –