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

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

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

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

Q&A

解決済

1回答

578閲覧

Swift 画像サイズの取得がうまくいきません

maru.wk

総合スコア30

Swift

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

0グッド

0クリップ

投稿2017/10/25 03:48

編集2017/10/25 05:00

UIImageから画像の縦横のサイズを取得したいと考えているのですが、エラーが出ます。どこが間違っているのでしょうか?

var image = UIImage(named: "sheep.jpg")
↑ここからサイズを取得しようと思い、

let Xwidth: Int = Int(image!.size.width) let Yheight: Int = Int(image!.size.height)
↑このようにコードを打った結果、playgroundではうまく動作したのですが、Xcodeprojectの方ではエラーが出ました。以下がそのエラーです。
Cannot use instance member "image" within property initializer;property initializer run before 'self' is available

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

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

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

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

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

fuzzball

2017/10/25 04:28

エラーメッセージはテキストで書いて下さい。
fuzzball

2017/10/25 05:11

あと、コードのマークダウンがまだきちんと出来ていません。回答に書いておきますので参考にして下さい。
guest

回答1

0

ベストアンサー

その三行、関数の外に書いていませんか?
インスタンス変数の初期化に、他のインスタンス変数を使用することは出来ません。

swift

1var image = UIImage(named: "sheep.jpg") //これは大丈夫 2//この下の二行は他のインスタンス変数(image)を使って初期化しようとしているのでエラー 3let Xwidth: Int = Int(image!.size.width) 4let Yheight: Int = Int(image!.size.height)

XwidthとYheight(もしくは三つとも)は関数内で初期化して下さい。

【コードのマークダウン】

開始はバッククォート3つ+言語名、終了はバッククォート3つだけ、です。
それぞれ単独の行にして下さい。

```swift コード コード コード ``` ※バッククォートを全角で書いていますが、実際には半角を使って下さい。

コードを選択しておいて、入力欄の上部にある</>をクリックしてもOKです。

投稿2017/10/25 04:36

編集2017/10/25 05:19
fuzzball

総合スコア16731

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

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

maru.wk

2017/10/25 05:02

理由付きの解説ありがとうございます。 これから、さっそく試してみます。
maru.wk

2017/10/25 05:19

すみません。何から何までありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問