Я использую ARC и путаюсь при использовании __bridge_transfer. У меня есть свойство userName следующим образом:
@property (nonatomic, retain) NSString *userName;
...
@synthesize userName = _userName;
...
CASE 1:
NSString *name = (__bridge_transfer NSString *)ABRecordCopyCompositeName(person);
self.userName = name;
CASE 2:
self.userName = (__bridge_transfer NSString *)ABRecordCopyCompositeName(person);
 где person имеет тип ABRecordRef.
В CASE  1 ARC выпустит локальное имя переменной (согласно моему пониманию, исправьте меня, если я ошибаюсь), однако что произойдет в CASE  2? Должен ли я использовать __bridge в CASE  2 ИЛИ CASE  2 не должен использоваться вообще? в CASE  2 с __bridge_transfer или __bridge, как сбалансировать счетчик ссылок?
в CASE  2, с __bridge_transfer, ARC освободит объект (объект, который передается как аргумент setter (void)setUserName:(NSString *)userName)?
