質問

私はObjective-CとCocoaで足を濡らしています(おそらく遅れていますが、どこかから始めなければなりません)。すべてのオブジェクトがヒープから割り当てられていることに気付きました。

これがObjective-Cの標準である理由はありますか?私はどこにでも見てみました(そして、はい、Stackoverflowでも)が、「それがどのようになっているか」を除いて、明確な理由を見つけることができませんでした。 Objective-CはOO機能を備えたCの厳格なスーパーセットと見なされるため、特に熱心です。

の記事を見逃した場合 インターブグ または、このトピックに関する誤ってStackoverflowに関する投稿をしてください。優雅なシャットダウンを開始してください。 :)

役に立ちましたか?

解決

これはスモールトークの遺産に負っていると思います。

また、スタックに割り当てられたオブジェクトはC ++の特異性であると言えます。他の言語はほとんどありませんが、主にコンパイラの低レベルの最適化として行われます。 C ++では、述べられた目標の1つが まさに プレーンCのようにパフォーマンス

Objective-CがCのスーパーセットであるという事実と対立するのはなぜですか?結局のところ、Plain Cはスタックにオブジェクトを割り当てることはできません... structs、otohは、CとObjective-Cの両方でスタックで許可されます

他のヒント

私はあなたの質問に正確に答えているわけではありませんが、あなたはOBJ-Cのランタイムを理解しているので、ここに行きます。 NSZONESを使用して、オブジェクトをより効率的に割り当てることができます。スタックにはそれらを置くことはありませんが、少なくとも断片化やパフォーマンスの問題を回避できます。テキストをリンクします

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top