2012-09-20 2 views
0

내 Singleton에서 속성을 선언하는 방법이 다소 분실되었습니다. strong 또는 weak을 사용해야합니까? 특히 NSMutableArray 속성이 있는데 무엇을해야할지 모르겠습니다. 누군가가 어떤 세부 사항을 설명 할 수 있습니까?NSMutableArray in Singleton. 강력하거나 약한 속성?

감사

답변

3

이 싱글 톤 함께 할 수 없다, 당신의 배열이 어떻게 사용되고 있는지에 전적으로 의존한다. 비공개인가요? 공공의? 읽기 전용입니까? Readwrite? 다른 모든 것처럼 소유권에 달려 있습니다. 싱글 톤이 배열을 소유하고 있다면 strong 또는 copy을 사용하십시오. 그렇지 않으면 weak을 사용하십시오.

그런데 일반적으로 변경 가능한 컬렉션을 직접 노출하는 것은 좋지 않습니다. 읽을 수 있도록 다른 클래스 만 필요한 경우 NSMutableArray을 내부적으로 사용하고 NSArray 복사본을 공개적으로 노출합니다. 다른 클래스가 콜렉션을 변경해야하는 경우 내부 변경 가능 배열을 변경하는 KVC-compliant methods 세트를 노출하는 것이 더 좋습니다.

+0

설명해 주셔서 감사합니다. 따라서이 경우 응용 프로그램을 읽는 동안 읽고 쓸 필요가 있기 때문에 다시 쓰기를 원합니다. 그래서 (비 원자, 읽기 쓰기) 또는 (비 원자력, 강한)을 사용하는 것이 합리적일까요? 죄송합니다. 그것의 교수형을 얻으려고 노력 – jini

+1

속성을 변경하고 속성에 쓰는 차이점을 명심하십시오. 속성 자체가 쓰기 가능해야하고, 그렇다면'(비 원자력, 강함) 또는'(비 원자 복사) '를 사용하십시오. 'readwrite'는 함축적입니다. –

+0

도움에 감사드립니다. – jini