我使用下面的代碼旋轉圖像圖像旋轉後應該保持增加數量嗎?
http://www.platinumball.net/blog/2010/01/31/iphone-uiimage-rotation-and-scaling/
這是爲數不多的圖像變換,我的圖像上傳到服務器之前做的一個,我也有一些其他的轉換:規範化,作物,調整大小。
每個轉換都會返回一個(UIImage*)
,我使用一個類別添加這些函數。我用這樣的:
UIImage *img = //image from camera;
img = [[[img normalize] rotate] scale] resize];
[upload img];
從相機中選擇3〜4張照片,每一次執行相同的代碼後,我得到了XCode內存警告消息。
我猜我有一個內存泄漏的地方(即使即時通訊使用ARC)。我使用xCode調試工具的經驗不是很豐富,所以我開始在每種方法之後打印保留計數。
UIImage *img = //image from camera;
img = [img normalize];
img = [img rotate]; // retain count increases :(
img = [img scale];
img = [img resize];
增加保留計數的唯一操作是旋轉。這是正常的嗎?
請搜索「不要使用retainCount」。你應該能夠找到幾個StackOverflow的問題和文章,說:retainCount對於調試這類事情是不可靠的。改用儀器,特別是泄漏和物體分配儀器。 – 2012-03-19 17:55:49
我終於用tje xcode profiler解決了這個問題。解釋內存使用圖我意識到我沒有內存泄漏,而是內存密集型操作。謝謝! – 2012-03-19 19:06:15