NSProxy を使用してオブジェクトをラップし、(forwardInvocation:) で呼び出しの retValue としてプロキシ インスタンスを作成しようとしましたが、すべてのプロキシ インスタンスを ARC で解放することはできません。ずっと悩んでいました。
github でのデモ: https://github.com/JorrisRaghan/proxyon
コンソール ログを表示できます。
DEALLOC PPObject:...
DEALLOC Proxyon:Class< PPObject >
ただし、DEALLOC Proxyon:id< PPObject >" はありません。
また、Instruments を使用してメモリ リークをチェックすることもできます。
だから私はそれを解決するためにあなたの助けが必要です、ありがとう!
更新: このリークは forwardInvocation によるものであることがわかりました:
void *proxyon = (__bridge_retained void *)[Proxyon proxyonWithInstance:obj];
[anInvocation setReturnValue:&proxyon];
Proxyon インスタンスの代わりに retVal として PPObject を設定したところ、PPObject でリークが発生したため、-[NSInvocation setReturnValue:] が鍵になると思います。