2013-05-21 4 views
0

CFMutableArray을 만들고 CFString으로 동적으로 채우고 있습니다. 내가 CFBridgingRelease를 사용하여 NSMutableArray으로이 CFMutableArray을 통해 해소하고있어 경우CFBridgingRelease는 Core Foundation 컨테이너에 보관 된 객체에서 어떻게 작동합니까?

  1. , 무엇이 그 아이는 어떻게됩니까?

  2. 나중에 배열의 항목에 액세스 할 때 ARC 관리 NSString으로 처리 할 수 ​​있습니까? 아니면 CFArrayCallbacks 구조체에서 자동으로 해당 전송을 처리해야합니까? 내가 CFBridgingRelease를 사용하여있는 NSMutableArray로이 CFMutableArray을 통해 해소하고있어 경우

답변

2

, 무엇이 그 아이는 어떻게됩니까?

대체로 아무 것도 없습니다. 물론 이것은 당신이 캐스팅하는 CFArray에 무엇을 넣었 느냐에 달려 있습니다. 무료 전화가 아닌 C 유형을 Objective-C 유형에 배치 한 경우 (CoreFoundation의 일부는 여전히 아직 브리지되지 않음) 결과 NS 유형의 동작은 정의되지 않습니다.

나중에 배열의 항목에 액세스 할 때 ARC 관리 NSString으로 처리 할 수 ​​있습니까? 아니면 CFArrayCallbacks 구조체에서 자동으로 해당 전송을 처리해야합니까?

브리징 된 어레이에서 브리징 된 유형을 처리하려면 아무 것도 할 필요가 없습니다. 배열에 포함 된 값은 이미 보존되어 있으므로 더 이상 배열을 통해 -retain을 보내지 않아야하며, 꺼내서 사용하는 것이 좋습니다.