2011-07-02 10 views
0

のはなぜカウント後にNSSetが役に立たない?

NSLog(@"mySet count: %@", [mySet count]); 

を行うことはできませんし、その後NSSetを使うのか? (コピー、保持、私はそれを私は不変/可変試してみた

「EXC_BAD_ACCESS」とアプリのクラッシュを使用しない場合、...セットのすべての種類を自動解放、そしてカウントメッセージの後、彼らはすべて無駄にしてクラッシュになります。そして、私が期待どおりに振る舞うカウントされません、そして、私はこのようにそれらをプリントアウトした場合場合:!。

NSLog(@"mySet: %@", mySet); 

結構です問題はちょうど数であるように思わ

することは、誰かが私にこれを説明することができますか?私はこの奇妙な行動について何も探さず見つけました。

+0

私たちはいくつかのコードを示しています.... –

+0

問題はすぐそこにあり、ディートリッヒエップはそれを見ました! – xfze

答えて

3

このクラッシュの原因は、[mySet count]が整数を返し、%@フォーマット指定子がオブジェクトを要求するためです。それを変更します。

NSLog(@"mySet count: %lu", [mySet count]); 

これは客観的Cの「落とし穴」(あなたはすでにCやC++に精通している場合を除き)のいずれかです。時々、あなたのデータはオブジェクトであり、時には、あなたのデータはオブジェクトではありません。これはCコードとの互換性のために必要です。

+0

+1私にそれを打つ。 –

+0

ああ、どうやってダム、完全にそれを逃した!私はペーストしてコピーして嬉しいです。そうでなければ、私は正しい方法で書くことができました(私は通常、カウントがdoha'tオブジェクトを返すことを知っているhaha) – xfze

関連する問題