私はobjective-cにはかなり新しく、iphone用の小さなアプリケーションを作成しようとしています。
私はここでこの小さなエラーの横にほとんどいます。実際には、私は適切な解決策を見つけるためにGoogleで数時間を探しましたが、残念ながら私は動作する解決策を見つけることができません。
私はのUITableViewを構築するためにここにこのチュートリアルを使用しています:objective-c "不変オブジェクトに送信された突然変異メソッド"エラー
*キャッチされない例外により「NSInternalInconsistencyException」、理由にアプリを終了:UITableView Tutorial 完全なエラーメッセージは、次のようになります「* - [ NSCFArrayは、insertObject:atIndex:]:不変オブジェクトに送られた変異法」
これは、データコントローラヘッダーです: 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
}
私はどんな助けにも大変感謝しています。
ご協力いただきありがとうございます。次の文のようにのinitに - - ダニエル
コピープロパティが実際に呼び出された場合は、保持してプロパティを代入することは貧しいソリューションになるだろう。 mutablecopyキーワードがないので、プロパティをコピーとして宣言しますが、合成されたアクセサを使用するのではなく、独自のアクセサを記述してください。 –
良い点。私は 'NSMutableArray'プロパティを宣伝するオブジェクトをほとんど見たことがないことも忘れてしまいます。私の中の純粋主義者は、オブジェクトの可変コピーを格納するカスタムセッターと、オートレリースされた不変コピーを返すカスタムゲッターを見たいと思うでしょう。 –