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

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

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

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

Swift

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

Q&A

解決済

2回答

1427閲覧

初めてプログラミングをしています。エラーを直したい

TarouFujii

総合スコア13

iOS

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

Swift

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

0グッド

0クリップ

投稿2019/06/05 23:56

前提・実現したいこと

ここに質問の内容を詳しく書いてください。
初めてプログラミングをしています。本を見ながらマップ検索アプリを作っています。

キーワードから緯度経度を検索する
検索窓 Text Fieldの文字から位置情報を検索し、緯度経度を確認しようという項目で
以下のエラーメッセージが発生しました。

発生している問題・エラーメッセージ

Use of unresolved identifier 'searchkey'; did you mean 'searchfs'?
Replace 'searchkey' with 'searchfs'

該当のソースコード

import UIKit import MapKit class ViewController: UIViewController , UITextFieldDelegate { override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. // Text Filedのdelegate通知先を設定 inputText.delegate = self } @IBOutlet weak var inputText: UITextField! @IBOutlet weak var disMap: MKMapView! func textFieldShouldReturn(_ textField: UITextField) -> Bool { textField.resignFirstResponder() if let searchkey = textField.text { print(searchkey) } let geocoder = CLGeocoder() geocoder.geocodeAddressString(searchkey, completionHandler: { (placemarks,error) in if let unwrapPlacemarks = placemarks{ if let firstPlacemark = unwrapPlacemarks.first { if let location = firstPlacemark.location { let targetCoordinate = location.coordinate print(targetCoordinate) } } } }) return true } } geocoder.geocodeAddressString(searchkey, completionHandler: { (placemarks,error) in の箇所がエラーになっています。

試したこと

searchfsに変えてみた、よくわからないので一からやり直した

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

dit.

2019/06/06 02:32

本を見ながらということですが、その書籍名などは挙げられますか?
TarouFujii

2019/06/06 04:29

iPhone アプリ開発集中講座 と言う本です。
TarouFujii

2019/06/06 04:29

こちらになります。
guest

回答2

0

searchkeyは if let の中でしか有効ではありません。

改めてtextField.textを使うか、let geocoder = CLGeocoder()以下のコードを if let の中に入れて下さい。

投稿2019/06/06 00:15

fuzzball

総合スコア16731

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

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

0

ベストアンサー

数日前、同じ質問に回答した覚えがあるのですが、どこかのサイトの写経なんでしょうかね?

https://teratail.com/questions/192051

投稿2019/06/06 01:53

takabosoft

総合スコア8356

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

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

takabosoft

2019/06/06 02:24

たしかにw もし情報元側が間違っているとしたら、そちらを直してもらわないと埒が明かない気がしますね。
TarouFujii

2019/06/06 04:28

みなさま、有難うございます。 こちらは、初心者向けの本です。 iPhone アプリ開発集中講座 と言う本です。 この本です。 https://www.amazon.co.jp/%E3%81%9F%E3%81%A3%E3%81%9F2%E6%97%A5%E3%81%A7%E3%83%9E%E3%82%B9%E3%82%BF%E3%83%BC%E3%81%A7%E3%81%8D%E3%82%8BiPhone%E3%82%A2%E3%83%97%E3%83%AA%E9%96%8B%E7%99%BA%E9%9B%86%E4%B8%AD%E8%AC%9B%E5%BA%A7-Xcode-10-Swift-4-2%E5%AF%BE%E5%BF%9C/dp/4802611870/ref=tmm_hrd_swatch_0?_encoding=UTF8&qid=1559795002&sr=8-2 趣味で一度自分が使うアプリを作ってみたいと思い購入したのですが。 過程の途中まで上手くいきましたが、どのアプリもシュミレーター前でエラーになり完成せずです。こちらに質問させて頂きました。
fuzzball

2019/06/06 04:37

サポートサイトでサンプルをDLしてみましたが、該当のコード(と思われるもの)は正しい記述になっていますね。自分で改変したわけではないのでしょうか?
dit.

2019/06/06 05:04 編集

おなじくサンプルをDLしてみました。 サンプルでは問題の箇所(geocoder.geocodeAddress…)はif let searchKey = textField.text {…}の中にありますね。 fuzzballさんの回答の通りかと思います。 対応する括弧を確認したり、インデントを正しくつけるなど見本のコードと照らし合わせてみてください。
TarouFujii

2019/06/06 05:06

ありがとうございます、やってみましたらご報告させて頂きます。
TarouFujii

2019/06/06 08:07

fuzzballさん dit.さん ありがとうございます。 皆様のお陰で出来ました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問