タグ付けされた質問 「objective-c-runtime」

4
純粋にCでiOSアプリを書く方法
私はここを読みますObjective-Cの前にLearn C? 通常、私は次にいくつかのObj-Cコードを純粋なCコードに置き換えます(結局、好きなだけそれらを組み合わせることができ、Obj-Cメソッドのコンテンツは完全に純粋なCコードにすることができます) これは本当ですか? 純粋にCプログラミング言語でiPhoneアプリを構築することは可能ですか?

3
Objective-Cクラス->次のような文字列:[NSArray className]-> @“ NSArray”
クラスオブジェクト自体からクラスの文字列名を取得しようとしています。 // For instance [NSArray className]; // @"NSArray" 私は見つけましたobject_getClassName(id obj)が、それにインスタンスを渡す必要があります。私の場合、それは不必要な作業です。 では、インスタンスではなくクラスオブジェクトから文字列を取得するにはどうすればよいでしょうか。

10
Objective-Cがプライベートメソッドをサポートしないのはなぜですか?
Objective-Cでセミプライベートメソッドを宣言するためのいくつかの戦略を見てきましたが、真にプライベートなメソッドを作成する方法はないようです。私はそれを受け入れます。しかし、なぜそうなのでしょうか。私が本質的に言ったすべての説明は、「あなたはそれを行うことはできませんが、これは厳密な近似です」と述べています。 ivars(メンバー)に適用される、スコープを制御するキーワードがいくつかあります(例:@private、@public)@protected。メソッドに対してもこれができないのはなぜですか?ランタイムがサポートできるはずです。私が見逃している根本的な哲学はありますか?これは意図的ですか?

6
Swiftネイティブ基本クラスまたはNSObject
私はSwiftでいくつかのisa swizzlingをテストし、NSObjectがスーパークラス(直接またはさらに上位)である場合、または '@objc'装飾を使用する場合にのみ機能することを発見しました。それ以外の場合は、C ++のような静的およびvtable-dispatchスタイルに従います。 Cocoa / NSObject基本クラスなしでSwiftクラスを定義するのは正常ですか?私が心配しているのであれば、これは、メソッドのインターセプトやランタイムイントロスペクションなど、Objective-Cのダイナミズムの大部分を先導することを意味します。 動的な実行時の動作は、プロパティオブザーバー、コアデータ、アスペクト指向プログラミング、高次メッセージング、分析およびロギングフレームワークなどの機能の中心に位置しています。 Objective-Cのメソッド呼び出しスタイルを使用すると、メソッド呼び出しに約20のマシンコードオペランドが追加されるため、特定の状況(小さなボディを持つメソッドへの多くの厳密な呼び出し)では、C ++スタイルの静的およびvtableディスパッチのパフォーマンスが向上します。 しかし、一般的な95-5ルール(パフォーマンス向上の95%はコードの5%のチューニングから得られる)を考えると、強力な動的機能から始めて、必要に応じて強化することは理にかなっていますか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.