나는 약간 MapKit에서 클래스 MKMultiPoint
의 다음 특성 points
에 의해 잠기 게하고 반환 : 그것은 구조체의 배열을 반환는 C-배열 및 메모리 관리
@property (nonatomic, readonly) MKMapPoint *points
합니다. pointCount
속성을 사용하여 배열의 요소 수를 알 수 있습니다.
C에 대한 제한된 지식으로 인해 호출자가 메모리를 할당 한 다음 릴리스해야하기 때문에 C 배열이 함수에 대한 참조로 전달 된 경우에만 "반환 된 정렬"일 수 있다고 생각했습니다.
비슷한 속성을 쓰려면 누가 배열 (아마도 호출 수신자 일 수도 있음)에 누가 더 많은 메모리를 할당 할 것인가? 누가 더 많이 (아마도 호출자 일까?) 누가 해방하겠습니까? 그것은 나에게 조금 위험한 것처럼 들린다. 게다가, 위의 속성에 대한 문서는 메모리를 해제해야한다는 것에 대해서는 아무 것도 말하지 않습니다.
무엇이 누락 되었습니까?
안녕 @nil을, 감사, 특정 사례에서 문서의 중요성을 강조합니다. 나는'MKMultiPoint'의'points' 속성에 관한 Apple 문서에서 뭔가 빠졌다고 가정합니다. 메서드의 서명이 주어지면 호출자가 메모리를 해제하는 다른 옵션은 표시되지 않습니다. 그렇지 않으면, 그들은 누수가 될 것입니다, 그렇죠? – ptrico
나는 모르겠다. 그러나 내 가정은 그것에 대한 노트가 없다면, 오브젝트가 포인터를 소유하고 할당 해제를 처리한다고 말할 수있다. 누설로 밝혀지면 나중에 해방 해 볼 수 있습니다. 누수가 아닌 것으로 가정하는 것이 더 낫습니다 (간단한 테스트를 통해 이걸 발견 할 수 있기 때문에). 잘 실행되고있는 것으로 보이는 글을 쓰면, 한달 후에 지옥은 당신이 의심하지 않는'자유로운 (...)'덕분에 느슨해집니다. – nil
그리고 나는 이제이 질문에 대한 답을 완전히 썼다는 점을 깨닫는다. 아마 아무 도움이되지 않습니다. – nil