__bridge
, __bridge_transfer
ключевые слова используются для того, чтобы сообщать системе ARC, как обращаться с вашими указателями non-object-c. В сущности, если вы используете __bridge
, вы сообщаете ARC, чтобы не иметь дело с правом собственности на преобразованный указатель, потому что вы освободите его от кода без объектива-c, скорее всего с помощью функции free()
или CFRelease
.... С другой стороны, __bridge_transfer
передает право собственности на ARC, и ARC освободит объект объектной-c (и, следовательно, также оригинальный объект non-object-c) через стандартный механизм выпуска, когда ссылки на этот объект достигнут нуля.
Reference
использование __bridge_transfer –
Благодарим за воспроизведение. –
Используйте autorelease. Компилятор автоматически освободит его после оператора return. –