Я согласен, что здесь может быть ошибка. Я изменил реализацию установщика объекта добавления, чтобы правильно добавить к NSMutableOrderedSet.
- (void)addSubitemsObject:(SubItem *)value {
NSMutableOrderedSet* tempSet = [NSMutableOrderedSet orderedSetWithOrderedSet:self.subitems];
[tempSet addObject:value];
self.subitems = tempSet;
}
Переназначение набора для self.subitems обеспечит отправку уведомлений Will / DidChangeValue.
Причина 31 кадра в секунду заключалась в том, что во время Flash 5/6 возникла проблема с версией Flash Player для Mac, из-за которой он выходил на плато при определенной частоте кадров. То есть, если вы работаете со скоростью 12-17 кадров в секунду, она редко превысит 12. Однако, если вы установите частоту кадров на 18, она будет оставаться равной 18.
Плато «золотого пятна» было при 31 кадре в секунду, потому что оно предлагало самую плавную анимацию (при условии, что вы не выполняли покадровую анимацию, и в этом случае 31 было слишком интенсивно), но при этом не требовало такой нагрузки на процессор. в качестве следующего плато, которое, как мне кажется, составило 61 кадр / с.
Даже несмотря на то, что те дни остались позади, все еще важно соблюдать баланс между плавной анимацией и процессором. Убедитесь, что вы выделили немного времени в начале вашего проекта (особенно, если в нем будет какая-то ручная анимация!
Я не эксперт по Flash, но это звучало достаточно интересно, чтобы по крайней мере погуглить. Эта ветка форума подразумевает, что «отраслевой стандарт» 31 кадр / с является результатом ошибки Flash 5. Поскольку Flash 5 появился недавно, люди, похоже, согласны с тем, что в наши дни вы можете более свободно выбирать частоту кадров, не обязательно все делать с частотой 31 кадр / с.
Также не забывайте, что вы можете установить частоту кадров динамически во время выполнения, установив свойство Stage.frameRate. Некоторые люди реализовали пониженную частоту кадров, когда приложение не в фокусе, чтобы сэкономить на использовании ЦП, или увеличили ее перед более интенсивной обработкой данных.
31-33 FPS было волшебным числом для AS2.
Вы можете плавно работать с 50-60 FPS с AS3, и вы заметите огромное улучшение.
Обычно 12–16 для анимации и 25–30 для кодирования. .
Также обратите внимание на этот класс: http://www.gskinner.com/blog/archives/2009/05/idle_cpu_usage.html
Он позволяет использовать преимущества высокой частоты кадров без следствие высокой фоновой загрузки ЦП! Кроме того, он легко адаптируется для работы без воздуха. (просто закомментируйте все, что вызывает ошибку компилятора).