問題タブ [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.

0 投票する
3 に答える
289 参照

iphone - iOS アプリ、クラスが突然消える、alloc でクラッシュする

これは奇妙なものです。私が自分のアプリケーションに取り組んでいるとき、この問題が発生したり、消えたりしました。今日、それは消えることを拒否しています。

私のアプリは、2 つのビュー コントローラーを使用して自動回転を処理します。Objective-C がクラスを見つけられないことがあります。たとえば、[OneViewController alloc] はクラッシュします。この状態をキャッチする関数を追加しましたが、自分のコードを 1 行実行する前に関数を呼び出しても、問題は解決しません。私はこれを、私が書いた悪いコードではないことを証明するために取っています。

universalGoodness が定数にならない理由を知っている人はいますか?

alloc の呼び出しを実行すると、スタック トレースは次のようになります。

0 投票する
1 に答える
2449 参照

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

0 投票する
4 に答える
8966 参照

ios - サブクラス内の Objective-C デリゲート メッセージをインターセプトする

スクロール動作に内部的に応答する必要がある UIScrollView のサブクラスがあります。ただし、viewcontroller は引き続きスクロール デリゲート コールバックをリッスンする必要があるため、コンポーネント内でデリゲートを完全に盗むことはできません。

「デリゲート」という名前のプロパティを保持し、それに沿って送信されたメッセージを聞くだけの方法はありますか?または、何らかのコードを実行した後にデリゲート プロパティを内部的に乗っ取り、メッセージを外部に転送する方法はありますか?

0 投票する
5 に答える
7011 参照

objective-c - Objective-C のセレクターは、オブジェクトにメッセージを送信する別の方法ですか?

Objective-C のセレクターは、オブジェクトにメッセージを送信する別の方法ですか? なぜ、どのようにそれらを使用するのか、私は本当に理解していません。

0 投票する
2 に答える
1440 参照

objective-c - *(id *)((char *)object + ivar_getOffset(ivar))とobject_getIvar(object、ivar)の違いは何ですか

Objective-Cランタイムリファレンスによると:

ivar_getOffsetインスタンス変数のオフセットを返します。

ptrdiff_t ivar_getOffset(Ivar ivar)説明タイプidまたは他のオブジェクトタイプのインスタンス変数の場合、このオフセットを使用してインスタンス変数データに直接アクセスする代わりに、object_getIvarおよびobject_setIvarを呼び出します。

runtime.hで宣言されています

どうしてこれなの?object_getIvarはオブジェクトタイプに対して何をしますか?

編集:質問を添え字(void *)から(id *)に変更しました。

0 投票する
4 に答える
3982 参照

objective-c - Objective-C のルート クラスを実装するには何が必要ですか?

私はこのコードを試しました:

フレームワークなしで LLVM/Clang を使用すると、次のエラーでコンパイルされません。

だから私は追加しましlibobjc.dylibた。コードはコンパイルされましたが、次の実行時例外がスローされました:

ルートクラスに必要な実装があることに気付きましたが、次に何をすればよいかわかりません。新しいルート クラスを作成するには何が必要ですか? また、これに関する仕様はありますか?

0 投票する
2 に答える
228 参照

objective-c - Objective-Cのメモリ管理

Objective-cのメモリ管理についていくつか質問があります。

まあ言ってみれば:

sのコンテンツstr1のコピーがあると思います:含まれているメモリ(ヒープ)の1つのアドレスを指します。このアドレスは、が指しているアドレスと同じではありません。右?teststr1msgtest

str2について:
1。何を保存しますか?、同じアドレスを指していると思いますtestが、参照カウンターが2に増えますtest。2
。テストの内容を変更すると、str2には何がありますか?私はそれがまだ指していると思いますmsg

str3について:それは間違っていますよね?、どうしassignますか?

ありがとう。

ボーナス質問:

コンテンツを変更する前にテストをリリースする必要がありますか?

0 投票する
1 に答える
279 参照

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例外を使用する方法はありますか?

0 投票する
2 に答える
2568 参照

ios - float変数をパラメーターとして渡す

パラメータを使用してメソッドを記述し、floatperformSelector`を使用して呼び出しようとしていますが、これを行うとエラーが発生します。以下は私のコードです:

ここでは、進捗状況と合計の両方がfloat変動します。

別のクラスで次のメソッドを呼び出そうとしています。

0 投票する
1 に答える
95 参照

objective-c - Objective C の小さな構文の明確化

私はほとんどの場合、このコードを見てきました。ここでは 2 つの変数名が定義されており、実装では代入によって合成されます。このようなことをする目的は何ですか?2 つの個別の変数名を保持するように。これは一種のコンベンションですか?

Test.h

Test.m