У меня есть простой объект c object
NSManagedObjectContext * moc = nil
Теперь мне нужно передать его в функцию в среде ARC, которая принимает параметр типа
void *volatile * value
Я пытался
&((__bridge void *)moc))
но я получаю следующую ошибку компилятора
Address expression must be lvalue or a function pointer
я тоже пробовал
void ** addr = (__bridge void **)(&moc);
Но я получаю ошибку
Incompatible types casting 'NSManagedObjectContext * __strong *' to 'void **' with a __bridge cast
Есть ли способ сначала передать, а затем получить адрес приведенного указателя?
ИЗМЕНИТЬ
Чтобы быть более конкретным, я пытаюсь реализовать шаблон singleton, описанный в другом вопросе stackoverflow, но у меня возникают проблемы подача адреса целевого объекта c NSManagedObjectContext
в третий аргумент следующей функции в среде ARC.
OSAtomicCompareAndSwapPtrBarrier(void *__oldValue, void *__newValue, void *volatile *__theValue)
__bridge
наvoid*
, вероятно, обречено на провал. - person Hot Licks   schedule 30.12.2011__bridge
ожидает указатели объектов с обеих сторон. - person Hot Licks   schedule 30.12.2011