Приложение падает после обновления Xcode до 4.5. Присвоение сохраненного объекта переменной unsafe_unretained
В моем классе у меня естьdispatch_queue_t
свойство объявлено так:
@property (nonatomic, assign) dispatch_queue_t queue;
Затем в моем методе init я делаю:
- (id)initWithServerUrls: (NSString*)serverUrls
{
if (self = [super init])
{
_queue = dispatch_queue_create("com.xxx.my_send_queue", DISPATCH_QUEUE_SERIAL);
}
return self;
}
В Xcode 4.4.1 это работало и не вызывало никаких проблем (приложение тестировалось + в магазине приложений). Теперь после того, как я обновился до Xcode 4.5, приложение вылетает сEXC_BAD_ACCESS и XCode дает мне предупреждение в этой строке, говоря:
Assigning retained object to unsafe_unretained variable; object will be released after assignment
Apple обновила компилятор в Xcode 4.5 с LLVM 4.0 до LLVM 4.1, но я понятия не имею, почему мой код сейчас падает.
Я прошел через код, и сбой происходит сразу после этой строки. У вас есть идеи, что может быть не так и как я могу это исправить?
SOLUTION:
Мне удалось заставить его работать с обоими SDK. Я только добавил:
#if OS_OBJECT_USE_OBJC
@property (nonatomic, strong) dispatch_queue_t queue; // this is for Xcode 4.5 with LLVM 4.1 and iOS 6 SDK
#else
@property (nonatomic, assign) dispatch_queue_t queue; // this is for older Xcodes with older SDKs
#endif
Надеюсь, кто-то найдет это полезным