@property (非アトミック、強力) NSMutableArray *authorMutableArray;
- (id)init {
self = [super init];
if (self) {
self.authorMutableArray = [[NSMutableArray alloc] initWithObjects:@"First Row", @"Second Row", nil];
for (NSString *string in authorMutableArray) {
NSLog(@"String: %@", string);
}
NSLog(@"Init in Add Model with Author count:%i", [authorMutableArray count]);
}
}
プロパティへのアクセス例。NSLog は常にカウントを 0 として示します。
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
{
if (indexPath.section == 0) {
if (indexPath.row == [self.addModel.authorMutableArray count] - 1 ) {
NSLog(@"count of %i", [self.addModel.authorMutableArray count]);
return UITableViewCellEditingStyleInsert;
}
else {
return UITableViewCellEditingStyleDelete;
}
}
else {
return UITableViewCellEditingStyleNone;
}
}
init で作成している配列は、このメソッドを超えて値を保持していません。何か理由は?for ループは、配列内の両方のオブジェクトを表示します。init メソッドが呼び出された後にこれを尋ねようとすると、配列が空になります。
更新: 皆様、お時間と目を向けていただきありがとうございます。init メソッドで self を返すのを忘れていました。