問題タブ [swizzle]
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.
ios - Swiftでinitをスウィズルする方法
私はSwift と Objective-C Runtimeに従っています。通常のメソッドで動作します。
私の理解では、init はクラス メソッドのようなものです。ということで、init をインスタンスとクラスメソッドとしてスウィズルしてみました。しかし、うまくいかないようです
Objective C を使用して動作させることができますが、Swift で動作させる方法を知りたいだけです
私の要旨から抜粋
ios - クラスメソッドでスウィズリングが機能しない
スウィズリングは動的メソッド交換を行っていません。これは私が使用したコードです.xcode 7のXCTestで依存性注入ができない解決策だと聞きました.Swizzling over DI(Dependency)について例を挙げて説明してもらえますか?
ここで [TNUserDetail isSignUpWithTwitter] を呼び出すと、+(BOOL)isSignUpSwizzle は呼び出されず、実際のメソッドのみが呼び出されます。どちらのメソッドもクラス メソッドであることに注意してください。
ios - コア データのデバッグ __NSCFSet addObject nil 例外
単体テスト中に Core Data スレッドで例外がスローされ、次のメッセージが表示されます。
CoreData: エラー: 重大なアプリケーション エラーです。コア データの変更処理中に例外がキャッチされました。これは通常、NSManagedObjectContextObjectsDidChangeNotification のオブザーバー内のバグです。-[__NSCFSet addObject:]: userInfo (null) で nil を挿入しようとしました
原因を特定しようとしていますが、NSManagedObjectContext
キューで発生しているため、スレッドには独自のコードのスタック トレースがありません。
-[__NSCFSet addObject:]
とにシンボリック ブレークポイントを設定しまし-[NSManagedObjectContext processPendingChanges]
たが、そこで停止している間は状態を確認できず、どのオブジェクトが問題を引き起こしているかを判断するのに役立ちました。
私が思いついた次のステップは、swizzling を試し-[__NSCFSet addObject:]
て独自の実装を追加することでした。これにより、引数が nil の場合にのみ停止できました。セットが空でないことを願っています。nil を挿入する前にその内容を確認することで、より多くの情報を取得できます。ただし、プライベートクラスなので、スウィズルするのに苦労しました。
上記のアプローチ、または私が考えていなかったアプローチを使用して、例外の原因に関する詳細情報を取得するにはどうすればよいですか?
ios - 3DタッチピークポップでUIScrollViewを適切にスウィズルするには?
3D Touch のピークとポップのプレビューが埋め込まれている UIScrollView をスウィズルしようとしています (Reveal アプリを介して UIScrollView であることはわかっています)。
ユーザーがこのスクロール ビュー/3D タッチ プレビューで指を動かすたびに知りたいです。
次のようにスウィズルしてみました。
しかし、画面上で指をスライドさせて数百回の呼び出しがあるはずのときに、「はい」と呼ぶのは1回か2回だけです。
私はこれを間違ってスウィズしていますか?
objective-c - Objective-C オーバーライド システム メソッド
C++ システム メソッドが ios でクラッシュを引き起こすことがわかり、メソッドをスウィズルしようとしました。ただし、C++ クラスのメソッドなので、その方法はわかりません。それができるかどうか知っている人はいますか?
c - システムメソッド呼び出し時にカスタムメソッドを挿入する方法は?
Objective-C プロジェクトを Swift に翻訳しています。
システムメソッドの呼び出し時にカスタムメソッドを実行したい。
Objective-C のコード: 彼は C タイプのメソッド、スウィズリング メソッドを使用しました。カスタム メソッドを実行し、システム メソッドの実行を続行します。
Swiftで何をすべきですか?IMP からメソッドを実行する方法は?
そして、この関数は reloadData() だけではなく、 endUpdate() にも用意されています!