問題タブ [objective-c-runtime]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
objective-c - object_getInstanceVariableはfloat、int、boolで機能しますが、doubleでは機能しませんか?
私はここでobject_getInstanceVariable
仕事をしなければなりませんが、それはフロート、ブール、イントでのみ機能し、ダブルでは機能しないようです。私は何か間違ったことをしているのではないかと思いますが、私はこれと輪になって行ってきました。
動作し、myFloatValue = 2.123
でもやってみると
取得しmyDoubleValue = 0
ます。関数の前に設定しようとするとmyDoubleValue
、たとえば。double myDoubleValue = 1.2f
、object_getInstanceVariable
呼び出し後に読んだときの値は変わりません。myIntValue
上記の関数の前に他の値に設定するとgetinstancevar
、2が返されます。変更されました。
それから私は試しました
私がそうするならば、私はivar_getName(tmpIvar)
「someDouble」を手に入れます、しかしmyDoubuleValue = 0
それでも!それから私は試しivar_getTypeEncoding(tmpIvar)
てみて、あるべき「d」を取得します。
要約するとtypeEncoding = float
、が機能する場合、それがdoubleの場合、結果は設定されませんが、変数を正しく読み取り、戻り値(Ivar)も正しいです。
私は私が見ることができない基本的な間違ったことをしているに違いないので、誰かがそれを指摘してくれれば幸いです。
objective-c - 任意のクラスのクラス メソッドのリストを取得する
特定のクラスのクラスメソッドのリストを取得するにはどうすればよいですか? class_copyMethodList
で宣言されている関数を使用してみました<objc/runtime.h>
が、それはインスタンス メソッドしか提供していません。クラスメソッドのメソッドを提供する関数も見つけましたが、最初にメソッドへのセレクターがある場合のみです(class_getClassMethod
)。
何か案は?
ありがとう、
デイブ
iphone - ユーザーの姓と名を発見していますか?
iPhone ユーザーの姓名をプログラムで検出しようとしています。これはまったく可能ですか?これを呼び出す...
..ああ。アドレス帳を反復処理すると、アドレス帳のすべてのレコードが見つかりますが、デバイスの所有者とそれ以外の人 (私にはわかります) は区別されません。
Mac デスクトップのアドレス帳では所有者のアイコンが左下に「me」のオーバーレイで飾られていることを考えると、そのような情報が iPhone バージョンで利用できることを期待しています。
マーティン。
objective-c - Objective-C ブロックからの IMP の作成
IMP
私が理解している限り、Objective-Cの型は関数ポインターを表します。IMP
ブロックポインタから作成する方法はありますか? アイデアをありがとう。
iphone - forwardInvocationに送信された引数の出力:NSProxyのサブクラス
セレクターと引数を出力するだけで、プロキシオブジェクトに送信されたメッセージをインターセプトしたいと思います。プロキシがそれらを実装しておらず、ターゲットオブジェクトがない場合でも。助けてください。私はいくつかのオプションとAppleドキュメントを見てきましたが、それらはあなたがすでにターゲットオブジェクトを知っていることを前提としています。私はこれをメモリの問題なしにきれいにやりたいと思っています。
どうもどうも
objective-c - class_getClassVariable()は何をしますか?
インスタンス変数がクラスのインスタンスに属している場合、クラス変数はメタクラスのインスタンスに属していると思います。しかし、Objective-Cメタクラスでの私の経験から、これはありそうもないことがわかります。
class_getClassVariable
とは対照的に何が行われるclass_getInstanceVariable
のか、なぜclass_setClassVariable
ランタイムにがないのか疑問に思っています。
c - Objective-C でのアスタリスクの使用
Objective-C でのアスタリスクの使用について質問がありました。明確にするために: 私はポインターとは何か、手続き型 C のすべてを理解しています。
1) すべての (への参照) Objective-C オブジェクト ポインターはなぜですか? 単純な変数ではないのはなぜですか? (つまり、NSArray 配列 = [[NSArray alloc] init];)
2) メソッドを呼び出すときにアスタリスクを省略するのはなぜですか?
ありがとう!
objective-c - Objective-C でのアスタリスクの使用: 関連する質問
これに関連するいくつかの質問がありました: Objective-C でのアスタリスクの使用法
NSArray 配列。ローカルスコープでは、スタックに「割り当てられた」オブジェクトになります。NSArray *配列; 通常はヒープから割り当てられた、メモリの塊に支えられたオブジェクトを示します。
スタックとヒープに何かが割り当てられていることをどのように知ることができますか? すべてのローカル変数はスタック上にあり、すべてのポインターはヒープ上にありますか?
オブジェクトへのポインターを逆参照していないため、オブジェクトへのポインターはメソッド実装自体の中で重要です。あなたが言う時...
は
objective-c - Objective-C プロパティの割り当ては、割り当てられた値を返しますか?
私は次のものを持っているとしましょう:
それで:
の戻り値を見ると、割り当てが何も返さないように見えるため、-[MyClass setFoobar:]
この行が を出力すると仮定するかもしれません。I set 'foobar' to ''
ただし、ありがたいことに、この割り当ては期待どおりに機能し、コードはI set 'foobar' to 'BAZ!'
. 残念ながら、呼び出されたセッターの戻り値は、割り当てがそれに割り当てられた値を返すという事実に反するため、これは矛盾しているように感じます。最初mcInst.foobar = @"BAZ!";
は、ブロックの代わりに 2 つの呼び出しを行っていると考えました。最初はセッター、次に戻り値を収集するためのゲッターです。ただし、setter メソッドと getter メソッドをNSLog
呼び出しでインストルメント化すると、そうではないことが証明されます。