Простой случай, который должен работать:
MyDataClass *newRecord = [controller newObject];
// configure newRecord
[controller addObject:newRecord];
[newRecord release];
Для выбора нового объекта необходимо предварительно настроить контроллер на -setSelectsInsertedObjects:YES
.
Но есть альтернатива, которую я бы счел более подходящей. Подкласс NSArrayController вроде так (неряшливый псевдокод):
@interface MyRecordController : NSArrayController
@property id recordSetting1;
@property id recordSetting2;
@end
@implementation MyRecordController
@synthesize recordSetting1;
@synthesize recordSetting2;
- (id)newObject
{
id result = [super newObject];
newRecord.setting1 = self.recordSetting1;
newRecord.setting2 = self.recordSetting2;
return result;
}
@end
Итак, ваш код становится:
- (IBAction)newRecord:(id)sender
{
recordsArrayController.recordSetting1 = self.defaultSetting1;
recordsArrayController.recordSetting2 = self.defaultSetting2;
[recordsArrayController add:self];
}