NSSet에서 NSMutableArray를 반환하는 방법


104

나는의 내용을 넣을 수 있어요 NSSetNSMutableArray이 같은 :

NSMutableArray *array = [set allObjects];

하지만 컴파일러는 [set allObjects]가 NSArray아닌 NSMutableArray. 이 문제를 어떻게 해결해야합니까?

답변:


218

-allObjects배열을 반환 하므로 다음을 사용하여 변경 가능한 버전을 만들 수 있습니다.

NSMutableArray *array = [NSMutableArray arrayWithArray:[set allObjects]];

또는 객체 소유권을 처리하려는 경우 :

NSMutableArray *array = [[set allObjects] mutableCopy];

7
참고 : 인 경우 두 가지 방법에는 미묘한 차이 setnil있습니다.
Zach Langley

-1

NSMutableArray의 메서드 'addObjectsFromArray'를 사용하여 모든 NSSet 개체를 NSMutableArray 에 할당 하여 충돌을 해결했습니다 .

[mutableArray addObjectsFromArray:[cg_Schedule.schedule_Days allObjects]];

이것이 도움이되기를 바랍니다.


-3

주문 된 세트 사용 :

NSArray *myArray = [[myOrderedSet array] mutableCopy];

NSSet - array메서드 가없는 것 같습니다 .
Sophie Alpert
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.