問題タブ [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.
iphone - iOS アプリ、クラスが突然消える、alloc でクラッシュする
これは奇妙なものです。私が自分のアプリケーションに取り組んでいるとき、この問題が発生したり、消えたりしました。今日、それは消えることを拒否しています。
私のアプリは、2 つのビュー コントローラーを使用して自動回転を処理します。Objective-C がクラスを見つけられないことがあります。たとえば、[OneViewController alloc] はクラッシュします。この状態をキャッチする関数を追加しましたが、自分のコードを 1 行実行する前に関数を呼び出しても、問題は解決しません。私はこれを、私が書いた悪いコードではないことを証明するために取っています。
universalGoodness が定数にならない理由を知っている人はいますか?
alloc の呼び出しを実行すると、スタック トレースは次のようになります。
ios-simulator - class_getClassMethodはしばしばnilを返します(クラスレベルのメソッドでのみ機能するようです)
現在、 http://sudzc.com/から生成されたコードを使用しようとしています。 このコードは、私のWebサービスに完全には適合していないため、生成されたクラスの一部にカテゴリを追加し、それらの実装を元のクラスと交換しようとしました。 「objc/runtime.h」からのmethod_exchangeImplementations。(生成されたコードを直接変更することもできますが、避けたいと思います)。
これがMyAppAppDelegateで実行するコードです-applicationDidFinishLaunchingメソッド
私の質問で述べたように、それらのclass_getClassMethodのほぼすべてがnilを返しています...私はデバッガーを使用したので、「theClass」が正しく設定されていることがわかります。見つかった唯一のメソッドはSoapクラスのメソッドであり、どちらもクラスレベル(+)のメソッドです。しかし、ネット上のさまざまな例から、他の人にも役立つはずだと結論付けました...
MyAppAppDelegate.mのインクルードは次のとおりです。
カテゴリもテストしましたが、機能します。「originalClass」オブジェクトからカテゴリメソッドを呼び出すことができます。
私は何か間違ったことをしていると思いますが、何がわかりません...または、class_getClassMethodは実際にクラスレベルのメソッドに対してのみ機能するはずですか?
最後に、デバイスではなくシミュレーターで開発しています:)
どんな考えでも大歓迎です!
ありがとう
PB
ios - サブクラス内の Objective-C デリゲート メッセージをインターセプトする
スクロール動作に内部的に応答する必要がある UIScrollView のサブクラスがあります。ただし、viewcontroller は引き続きスクロール デリゲート コールバックをリッスンする必要があるため、コンポーネント内でデリゲートを完全に盗むことはできません。
「デリゲート」という名前のプロパティを保持し、それに沿って送信されたメッセージを聞くだけの方法はありますか?または、何らかのコードを実行した後にデリゲート プロパティを内部的に乗っ取り、メッセージを外部に転送する方法はありますか?
objective-c - Objective-C のセレクターは、オブジェクトにメッセージを送信する別の方法ですか?
Objective-C のセレクターは、オブジェクトにメッセージを送信する別の方法ですか? なぜ、どのようにそれらを使用するのか、私は本当に理解していません。
objective-c - *(id *)((char *)object + ivar_getOffset(ivar))とobject_getIvar(object、ivar)の違いは何ですか
ivar_getOffsetインスタンス変数のオフセットを返します。
ptrdiff_t ivar_getOffset(Ivar ivar)説明タイプidまたは他のオブジェクトタイプのインスタンス変数の場合、このオフセットを使用してインスタンス変数データに直接アクセスする代わりに、object_getIvarおよびobject_setIvarを呼び出します。
runtime.hで宣言されています
どうしてこれなの?object_getIvarはオブジェクトタイプに対して何をしますか?
編集:質問を添え字(void *)から(id *)に変更しました。
objective-c - Objective-C のルート クラスを実装するには何が必要ですか?
私はこのコードを試しました:
フレームワークなしで LLVM/Clang を使用すると、次のエラーでコンパイルされません。
だから私は追加しましlibobjc.dylib
た。コードはコンパイルされましたが、次の実行時例外がスローされました:
ルートクラスに必要な実装があることに気付きましたが、次に何をすればよいかわかりません。新しいルート クラスを作成するには何が必要ですか? また、これに関する仕様はありますか?
objective-c - Objective-Cのメモリ管理
Objective-cのメモリ管理についていくつか質問があります。
まあ言ってみれば:
sのコンテンツstr1
のコピーがあると思います:含まれているメモリ(ヒープ)の1つのアドレスを指します。このアドレスは、が指しているアドレスと同じではありません。右?test
str1
msg
test
str2について:
1。何を保存しますか?、同じアドレスを指していると思いますtest
が、参照カウンターが2に増えますtest
。2
。テストの内容を変更すると、str2には何がありますか?私はそれがまだ指していると思いますmsg
str3について:それは間違っていますよね?、どうしassign
ますか?
ありがとう。
ボーナス質問:
コンテンツを変更する前にテストをリリースする必要がありますか?
objective-c - 新しい例外 (@throw…) を使用して、Objective-C で Ruby 拡張機能を構築する方法は?
Objective-C で Ruby 拡張機能をビルドしました。マクロ ベースの例外処理とセルフ ビルド エラー処理の代わりに @throw/@catch などを使用したいと考えています。
GCC に同梱されている GNU ランタイムを使用しています。
拡張機能を使用して Ruby アプリを実行すると、例外が発生するとすぐにコア ダンプが発生します。abort() は GNU Objective-C ランタイムに由来します (libobjc/exception.c:375):
でコンパイルしたので、呼び出されていると-fobjc-exceptions
思います。_Unwind_RaiseException
Ruby拡張機能でObjective-C例外を使用する方法はありますか?
ios - float変数をパラメーターとして渡す
パラメータを使用してメソッドを記述し、float
performSelector`を使用して呼び出しようとしていますが、これを行うとエラーが発生します。以下は私のコードです:
ここでは、進捗状況と合計の両方がfloat
変動します。
別のクラスで次のメソッドを呼び出そうとしています。
objective-c - Objective C の小さな構文の明確化
私はほとんどの場合、このコードを見てきました。ここでは 2 つの変数名が定義されており、実装では代入によって合成されます。このようなことをする目的は何ですか?2 つの個別の変数名を保持するように。これは一種のコンベンションですか?
Test.h
Test.m