• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:objectiv-cで困っています。教えてください)

objectiv-cでカメラロールから画像を表示させる方法

このQ&Aのポイント
  • objectiv-c初心者の方がカメラロールから画像を選択し表示させる方法について質問しています。
  • 配列に格納されているUIImageオブジェクトを取り出し、UIImageViewに表示させるためのコードの一部に問題があるようです。
  • おそらく「initWithImage:」の引数の値が正しく指定されていないことが原因だと思われます。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

> 「initWithImage:配列の番号」のところがおかしいのでしょうか? この通り「配列の番号」と漢字で書いているのだったら 正しいわけありません。 実際にはなにか英数字でコーディングしているのだと 思いますが、その内容がどんなものかを説明しないと それがおかしいかどうか分かるわけありません。 が、それ以前の部分もあきらかにおかしいので その点を指摘しておきます。 まず、UIImageクラスにinitWithImageというメソッドはありません。 そもそもNSArrayの配列には既にUIImageオブジェクトが入っていますから、 それをimageView.imageに設定すればいいだけです。 例えば、画像が入っている配列を「NSArray *imageArray;」とし 表示したい画像の配列番号を「NSInteger imageNumber;」とするなら imageView.image = imageArray[imageNumber]; とするだけでよいと思います。 あと、imageViewをプロパティで定義したのなら、 もしかするとimageViewじゃなくて_imageViewとする必要が あるかもしれませんが、imageViewをどう定義しているのか ちゃんと書いてないのではっきりわかりません。 状況の説明も「表示させようとしているのですが、表示できません」 と書いていますが、このコーディングだと、実行する以前に ビルドエラーでエラー箇所が赤く表示されているはずです。 普通はそのメッセージ内容を見て何が悪いか考えます。 そのメッセージの意味がわからないなら、正確なメッセージ内容を ちゃんと質問に記載して質問すべきです。 そして、コーディングもできるだけそのまま記載し、 記載できないところを補足すべきです。 > 0x7fbbdae8d690などの文字列はカメラロールの画像へのパスですか? これは、画像へのパスじゃなくて、UIImageクラスオブジェクトの アドレスです。意味もわからず質問に書いたのかもしれませんが、 これによって、配列にUIImageクラスのオブジェクトが入っている ということがはっきりわかります。これがあったから imageView.image = imageArray[imageNumber]; とするだけでよいというアドバイスになりました。

dkong
質問者

お礼

分かりにくい質問で失礼しました。そんな質問にもきちんと回答をくださりありがとうございました。0x7fbbdae8d690などがUIImageクラスオブジェクトであることがわかり、ご指摘のように imageView.image = imageArray[imageNumber]; imageViewのimageメソッドで配列の中身をセットすれば、画像が表示されました。ありがとうございました。また、よろしくお願いします。

関連するQ&A