2016-05-18 14 views
0

XCode Instrumentsを使用してリークを検出すると、複数のリークされたTOCImportオブジェクト(48バイト)が表示されます。 私は、ARCがネイティブのiOS(Objective C)側とDelphi側の両方でオブジェクトを解放することに注意しますが、OCwrapperクラスは中間にあります。例えばObjective-Cラッパークラスを正しく解放するにはどうすればいいですか?

私はUIImageViewの作成を簡素化するために、この関数を作っ:

function iosUIImageView(aUIImage: UIImage): UIImageView; 
begin 
    result := TUIImageView.Wrap(TUIImageView.Wrap(TUIImageView.OCClass.alloc).initWithImage(aUIImage)); 
end; 

アプリを閉じたとき、それはTOCImportオブジェクトをリーク。

このリークを防ぐにはどうすればよいですか?

+0

問題が原因であるかどうかわかりませんが、 'TUIImageView.Wrap'を2度呼びます。 –

+0

私はEmbarcadero QAに関するバグレポートを投稿しました:https://quality.embarcadero.com/browse/RSP-15097 – Hans

答えて

0

私はそれが関数に配置されたときにのみ起こることを発見しました。場所ではなく機能により、同じコードを呼び出すと、TOCImportオブジェクトリークしていないようです:私は、関数にinlineを追加しようとしました

LUIIMageView := TUIImageView.Wrap(TUIImageView.Wrap(TUIImageView.OCClass.alloc).initWithImage(aUIImage)); 

をし、また、は、少なくともでは、問題を解決するようですいくつかの状況。その行動は私には予測できないように見え、何が起こっているのか分かりません。

関連する問題