Преобразование типов & само вызывает ошибку компилятора

В среде ARC у меня есть следующий код:

NSInvocation* invocation = [NSInvocation invocationWithMethodSignature:signature];
[invocation setTarget:delegate];
[invocation setSelector:@selector(restClient:loadedFile:contentType:eTag:)];
// Error Here!
[invocation setArgument:&self atIndex:2];
[invocation setArgument:&filename atIndex:3];
[invocation setArgument:&contentType atIndex:4];
[invocation setArgument:&eTag atIndex:5];

Установка аргумента в индекс 2 ( & self ) вызывает следующую ошибку компилятора:

Отправка * const __strong * параметру типа void * изменяет свойства сохранения / освобождения

Я понятия не имею, как это исправить, сохранив действующий код. На данный момент я просто придерживаюсь NULL и помещаю оператор invoke в блок try / catch, но это далеко не идеальное решение.


Похожая проблема, если кто-нибудь будет достаточно любезен, чтобы ее решить:

С помощью этой строки кода (из библиотеки MPOAuth)

status = SecItemCopyMatching((__bridge CFDictionaryRef)searchDictionary, (CFTypeRef *)&attributesDictionary);

я получаю следующее error

Преобразование косвенного указателя на указатель Objective-C в 'CFTypeRef ' (также известное как 'const void * ') запрещено с помощью ARC

9
задан FeifanZ 25 September 2011 в 23:18
поделиться