Я получаю эту ошибку компилятора:
Неявное преобразование типа указателя без Objective C 'void *
_Nullable 'для' NSObject * __ strong * 'запрещено с ARC
когда я пытаюсь скомпилировать этот старый код, который работал до ARC. Фактический код находится в цикле, управляемом массивом. Этот фрагмент представляет собой всего лишь один цикл кода, чтобы выделить ошибку без посторонних вещей.
- (void)myCode
{
NSDictionary *sDict; // I want the @{ @"key" : @"value" } to end up here
// this is in a loop to set several dictionaries
// vcValue is set from a controlling array, but ends up like this:
NSValue *vcValue = [NSValue valueWithPointer:&sDict];
NSObject **vcPointer = [vcValue pointerValue]; // <<-- generates the error
*vcPointer = @{ @"key" : @"value" }; // for sDict
}
Я использую NSObject, потому что указатель может быть на NSDictionary или NSArray, основываясь на управляющем массиве. В этом примере он указывает на словарь.
Как правильно определить vcPointer?