NSSetからNSMutableArrayを返す方法


104

私はの内容を置くことができるよNSSetNSMutableArray、このように:

NSMutableArray *array = [set allObjects];

[set allObjects]はNSArraynotを返すため、コンパイラは文句を言いますNSMutableArray。これをどのように修正すればよいですか?

回答:


218

-allObjectsは配列を返すので、次のコマンドで変更可能なバージョンを作成できます。

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

または、オブジェクトの所有権を処理する場合:

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

7
注:である場合、2つの方法には微妙な違いsetがありnilます。
ザックラングレー

-1

NSMutableArrayのメソッド「addObjectsFromArray」を使用してすべてのNSSetオブジェクトをNSMutableArrayに割り当てることで、クラッシュを解決しました。

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

これがお役に立てば幸いです。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.