Подклассы NSManagedObject и setValuesForKeysWithDictionary:

В SQL Server 2005 Вы больше не должны работать хранимая процедура sp-blocker-pss80 . Вместо этого можно сделать:

exec sp_configure 'show advanced options', 1;
reconfigure;
go
exec sp_configure 'blocked process threshold', 30;
reconfigure; 

можно тогда запустить SQL Trace и выбрать Заблокированный процесс, сообщает класс событий в группе Ошибок и Предупреждений. Детали того события здесь .

7
задан Monolo 31 May 2012 в 15:32
поделиться

3 ответа

В NSManagedObject определенно нет ничего, что могло бы предотвратить это; Я делаю именно это в приложении, над которым работаю. Можете ли вы опубликовать еще свой код?

Еще одна мысль: вы уверены, что это setValue: forUndefinedKey: вызывает исключение? Я уверен, что для управляемого объекта вам также необходимо реализовать valueForUndefinedKey: (получатель), чтобы все работало правильно.

3
ответ дан 7 December 2019 в 10:03
поделиться

Простой вопрос, но указываете ли вы имя класса подкласса NSManagedObject для объекта в вашей модели?

Кроме того, вы сказали, что инициализируете управляемый объект ... как? Вы должны вставлять его через + [NSEntityDescription insertNewObjectForEntityForName: inManagedObjectContext:] в большинстве случаев, если у вас нет веской причины не делать этого.

2
ответ дан 7 December 2019 в 10:03
поделиться

Быстрый дамп класса инфраструктуры CoreData показывает, что NSManagedObject также переопределяет setValuesForKeysWithDictionary: , поэтому похоже, что он определенно выполняет некоторые настройки для этот метод, возможно, из соображений производительности или чего-то в этом роде. Я, вероятно, просто напишу свой собственный метод, эквивалентный setValuesForKeysWithDictionary: , и вызову его вместо этого, чтобы избежать всего беспорядка. Примерно так:

- (void)mySetValuesForKeysWithDictionary:(NSDictionary*)dict
{
    for (NSString* key in dict)
        [self setValue:[dict objectForKey:key] forKey:key];
}
1
ответ дан 7 December 2019 в 10:03
поделиться