ОК, вторая попытка - я удалил свою первую.
@ Одри - вам нужно опубликовать трассировку исключений консоли в своем вопросе - это действительно очень полезно и предотвратило бы последние 10 минут обсуждения в комментариях.
Я создал тестовое приложение с вашим кодом (кроме метода swizzling, который, как вы настаиваете, не имеет ничего общего с проблемой, но не покажет нам), и он вылетает.
Тем не менее, он говорит мне, почему:
2011-09-19 12:51:10.346 test[50884:40b] *** Assertion failure in -[UICGColor encodeWithCoder:], /SourceCache/UIKit_Sim/UIKit-1448.89/UIColor.m:894
2011-09-19 12:51:10.447 test[50884:40b] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Only support RGBA or the White color space, this method is a hack.'
Вы можете сериализовать только определенные объекты UIColor.
Вместо того, чтобы сериализовать UIColor, вам нужно сохранить изображение, из которого был создан шаблон. Сделайте это в вашем encodeWithCoder:
Затем в вашем initWithCoder:
вы должны разархивировать образ и создать из него новый UIColor.
Хотя, чтобы быть совершенно ясным, я не могу сказать, является ли это той же самой аварией, которую вы видите. Без каких-либо сообщений об ошибках этот ответ является лишь предположением. Пожалуйста, постарайтесь быть полезным; люди просили дополнительную информацию, и вы, похоже, неохотно ее предоставляете.