Один из наших клиентов видит аварию, как это иногда при вставке:Что может привести к сбою - [NSPasteboard types]?
0 com.apple.Foundation 0x9143bd1d readPointerAt + 9
1 com.apple.Foundation 0x9153221f empty + 43
2 com.apple.Foundation 0x9145d41f dealloc + 21
3 com.apple.Foundation 0x9145d3ce -[NSConcreteMapTable dealloc] + 35
4 com.apple.AppKit 0x9092aa5d -[_NSPasteboardOwnersCollection dealloc] + 45
5 com.apple.AppKit 0x905cdb8f _NSPasteboardReportChangedOwner + 66
6 com.apple.AppKit 0x905cd4aa -[NSPasteboard _updateTypeCacheIfNeeded] + 51
7 com.apple.AppKit 0x905cd361 -[NSPasteboard _typesAtIndex:usesPboardTypes:] + 52
8 com.apple.AppKit 0x905cd327 -[NSPasteboard types] + 50
Кто-нибудь есть идеи, что может привести к этому?
- Картонный объект действителен, насколько я могу судить, но затем падает внутренне.
- Я думаю, что это обычно при вставке из другого приложения, возможно ли, что другое приложение несовместимо с его собственностью на картоне?
Дополнительная информация от Does NSPasteboard retain owner objects? гласит, что да, в картотеке владельцы переданы ему. Поэтому эта авария должна быть либо:
- Переоценка в моем коде. Это приводит к тому, что объект будет освобожден, в то время как в картотеке все еще содержится ссылка на него. Я думаю, что это маловероятно, так как вы ожидаете, что проблема появится независимо от картона, и я не видел ни одного сбоя (отчета), чтобы предположить это.
- Что-то в пути
NSPasteboard
управляет кросс-прикладными пастами, происходит неправильно и сбой. Кто-нибудь сталкивался с чем-то вроде этого или знал, что может вызвать это?
Сохранять в вашем примере не является необходимым; блок все равно сохранит картон. И нет, это не проблема, о которой я вижу несколько сообщений. –
Блок сохраняет картон только в том случае, если вы используете его внутри блока. Вы можете использовать один из своих картонных элементов, который имеет только слабую ссылку на картона. Для меня это решило частые сбои. –