У меня довольно стандартная настройка, в которой в контроллере есть массив, который я привязываю к NSTableView. Когда я добавляю объект в этот массив с помощью пользовательского интерфейса, я добавляю элементы, копируя массив в изменяемый массив, добавляя содержимое, а затем копируя его обратно. Я где-то видел эту идиому, но я не совсем уверен, где и действительно ли это нормальное занятие. На Snow Leopard я отлично работаю, но на Leopard он очень сильно падает. GDB говорит мне, что это происходит прямо в отмеченной строке, куда я копирую новый массив обратно.
@interface MyAppDelegate : NSObject {
NSArray * urls;
//other declarations
}
@property (nonatomic, retain) NSArray *urls;
@implementation MyAppDelegate
@synthesize urls;
- (void)addThing:(id)sender {
NSMutableArray *newUrls = [NSMutableArray arrayWithArray: [self urls]];
[newUrls addObject: newurlimadding];
[self setUrls: [NSArray arrayWithArray: newUrl]];
}
Я почти уверен, что должен делать что-то сумасшедшее здесь. Есть лучший способ сделать это? Почему я рушусь?