質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

1454閲覧

Swift UIImageにてUnwrapping Errorを返す

bilieikbilibili

総合スコア37

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2018/06/18 11:18

編集2018/06/18 11:50

ios11.4アップグレードに伴いxcodeをver10 Betaにしました。

しかしその後、Assetに入っている画像をUIImageを通して取得しようとすると、UnwrappingErrorを返すようになりました。

xcode9.4では正常に動作していたのですが、何か改善するための情報はありますでしょうか?

また、今回のエラーは一部の画像のみこのエラーが出ました。

エラーが治らないために何度もAssetに画像を入れ直し、Cleanしたりもしましたが、無駄でした。

解決方法を教えてください。

(ネットで漁ってみたところ、xcodeのバグではないかというサイトをいくつか発見しましたが、今の所不明瞭です。)

--追記--

詳細です。

まずコードからですが

swift

1var iimmmgg:[UIImage] = [] 2self.iimmmgg = [UIImage(named: "blank")!]/// ここでError発生

画像についてですが
イメージ説明
↑ただの真っ白いjpgです。
Assetには1x倍率の箇所のみしか入れていません。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

_Kentarou

2018/06/18 11:41

自分の手元では再現していませんので、どの様な形式の画像なのか、どの様なコードで取得しているのかを教えてください。
bilieikbilibili

2018/06/18 11:48

コメントありがとうございます。追記しました。
guest

回答1

0

ベストアンサー

これはXcode 10とか関係ないですね。

下のようにすればエラーはなくなります。

swift

1 2var iimmmgg:[UIImage] = [] 3iimmmgg = [UIImage(named: "blank")!]

self.iimmmggにするのでしたら、以下の様になります。

swift

1 2import UIKit 3 4class ViewController: UIViewController { 5 6 @IBOutlet weak var imageView: UIImageView! 7 var iimmmgg:[UIImage] = [] 8 9 10 override func viewDidLoad() { 11 super.viewDidLoad() 12 13 14 self.iimmmgg = [UIImage(named: "blank")!] 15 imageView.image = iimmmgg.first 16 } 17} 18

この場合selfViewControllerのことになります、そしてその自分のプロパティのiimmmggself.iimmmggと表現しているのです。

投稿2018/06/18 12:14

編集2018/06/18 12:18
_Kentarou

総合スコア8490

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

bilieikbilibili

2018/06/18 12:18

回答ありがとうございます。 同じコードでやってみましたが、やはりエラーが返ってくるようなので、 おそらく、Assetの方で処理がうまくいってないのかもしれません。 もう少し自身で探ってみることにします。
_Kentarou

2018/06/18 12:20 編集

回答を少し変更しました、エラーはなんと出ていますか?
bilieikbilibili

2018/06/18 12:25

エラーは下記のように出ています。 [Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value] しかし、全く別な画像で同じ処理を行うと(...named: "ほかの画像の名前"...)正常に動作するものもあり、動作しないものもあり、何が起こっているのかは正確にはまだわかっていません。
_Kentarou

2018/06/18 12:29

あ、それ単純に画像の名前があっていないのではないでしょうか? force Unwrapしているので画像が取得できなくて落ちているもよう。 画像名あってますか?
bilieikbilibili

2018/06/18 12:33

_Kentarouさんありがとうございます。 拡張子がjpgだったのでpngで同じものを作り直しました。 すると正確に読み込むことができました。 UIImage"ファイル名"←この拡張子をつけないタイプの場合はpng出ないと読めないようなのですが、そのようなことはなかったような気がしています。(自分の思い込みかもしれません。) なので、少しリファレンスを読み直してしらべてみようとおもいます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問