LoginSignup
2
1

More than 5 years have passed since last update.

[Objective-C]CGImageRefで強制終了した話

Posted at

Swiftが流行る中でObjective-Cの記事かよというツッコミはあると思いますが、多分、Swiftでも起こる話なので見ていってください。

CGImageRefって何?という方は下の記事が結構細かく書かれているので読んでください。

http://galakutaapp.blogspot.com/2016/08/blog-post_25.html

コードを組んでいる最中にXcodeでdebugビルドしたところ問題なく、releaseビルド時のみ強制終了したところから始まります。
始め、どこで強制終了しているか不明で調査するしたところ、どうやら以下のコードで強制終了しているようでした。

// imgのcgImageRefはライブラリで定義されていたもの
CGImageRef imageRef = [img cgImageRef];
UIImage *image = [UIImage imageWithCGImage:imageRef];

解決方法は簡単で一度定義されているCGImageRefを直接入れればいいということでした。

// imgのcgImageRefはライブラリで定義されていたもの
UIImage *image = [UIImage imageWithCGImage:[img cgImageRef]];

直前で定義したものが次の行で解放されていることに驚きを隠せませんでした。

因みにStackOverflowの英語記事にあったような気がしますが、見つけにくかったのでメモ書き程度にこちらで記載しました。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1