【发布时间】:2009-08-03 19:00:19
【问题描述】:
我对 Objective-c 很陌生,并尝试为 iphone 创建一个小应用程序。
除了这个小错误,我几乎完成了。实际上,我已经用谷歌搜索了几个小时以找到合适的解决方案,但不幸的是我无法找到有效的解决方案。
我在这里使用本教程来构建 UITableView:UITableView Tutorial
完整的错误信息如下所示:
* 由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“* -[NSCFArray insertObject:atIndex:]: mutating method sent to immutable object”
这是数据控制器标头: 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
.....
和数据控制器方法: 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;
}
-------------------稍后在源代码中---------- ----------------------
- (void)addData:(NSString*)data; {
[tableList addObject:data]; //<---- here the app crashes
}
我非常感谢任何帮助。
提前感谢您的支持。
丹尼尔
【问题讨论】:
标签: objective-c nsstring nsmutablearray immutability