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

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

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

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

Swift

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

Q&A

1回答

2410閲覧

swiftでドラムロール作っています。

manabimono

総合スコア11

Xcode

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

Swift

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

0グッド

0クリップ

投稿2019/06/06 05:02

xcode10.1でドラムロールを作っているのですが
エラーが出てきて困っています。

ViewController.swiftには下記のコードを打ち込んでいます。

import UIKit class ViewController: UIViewController,UIScrollViewDelegate { @IBOutlet var ScrollView: UIScrollView! @IBOutlet weak var Header: UIView! @IBOutlet weak var textField: UITextField! override func viewDidLoad() { super.viewDidLoad() let pickerView: UIPickerView = UIPickerView() let _: [String] = ["日本", "アメリカ", "ロシア", "中国", "韓国", "イギリス", "ドイツ", "フランス"] // ピッカー設定 pickerView.delegate = self pickerView.dataSource = self pickerView.showsSelectionIndicator = true // 決定バーの生成 let toolbar = UIToolbar(frame: CGRect(x: 0, y: 0, width: view.frame.size.width, height: 35)) let spacelItem = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: self, action: nil) let doneItem = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(done)) toolbar.setItems([spacelItem, doneItem], animated: true) // インプットビュー設定 textField.inputView = pickerView textField.inputAccessoryView = toolbar } // 決定ボタン押下 @objc func done() { textField.endEditing(true) textField.text = "(klist[pickerView.selectedRow(inComponent: 0)])" } } extension ViewController : UIPickerViewDelegate, UIPickerViewDataSource { // ドラムロールの列数 func numberOfComponents(in pickerView: UIPickerView) -> Int { return 1 } // ドラムロールの行数 func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { /* 列が複数ある場合は if component == 0 { } else { ... } こんな感じで分岐が可能 */ return klist.count } // ドラムロールの各タイトル func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? { /* 列が複数ある場合は if component == 0 { } else { ... } こんな感じで分岐が可能 */ return klist[row] } /* // ドラムロール選択時 func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { self.textField.text = list[row] } */ func scrollViewDidScroll(_ ScrollView: UIScrollView) { Header.frame = CGRect(x:0, y: 0+ScrollView.contentOffset.y, width:375, height:128) } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() } }

エラーは下記の通りです。

イメージ説明

イメージ説明

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

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

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

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

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

fuzzball

2019/06/06 05:05

klistってなんですか?
manabimono

2019/06/06 05:07

もともとはlistだったんですがklistに変えるエラーがでたのでかえました。
takabosoft

2019/06/06 05:09

そうではなくて、klistの定義を聞いているんだとおもいます(^_^;)
dsuzuki

2019/06/06 05:15

@objc func done() で参照している pickerView の定義もないようです。
guest

回答1

0

klistの型が解らないので答えようがありませんが、
klist[...]というように角括弧を使って要素にアクセスするための機能がklistは持ち合わせていないようです。


追記:

たぶん最初の「list」が定義されていないのが問題です。
参考にしているサイトや文献をもう一度読み返してください。
どこかに

var list: [Hoge] = []

と言ったような定義されているはずです。

#klistはすでに定義されている構造体でした。

投稿2019/06/06 05:07

編集2019/06/06 06:03
takabosoft

総合スコア8356

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

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

manabimono

2019/06/06 05:10

klistをlistにすると「Use of unresolved identifier 'list';did you mean 'klist'?」と出てしまいます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問