🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Xcode

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

Swift

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

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

Q&A

解決済

2回答

1157閲覧

xcode11 }の数が足りない?

Misoshirubot

総合スコア5

Xcode

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

Swift

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

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

0グッド

0クリップ

投稿2019/11/11 14:47

コード ```### 前提・実現したいこと iphoneで地図を表示し、緯度経度の検索を行おうとしています ### 発生している問題・エラーメッセージ 以下の2つが表示されます

Expected '}' at end of brace statement
Expected '}' in class

### 該当のソースコード ```swift5 import UIKit import MapKit class ViewController: UIViewController , UITextFieldDelegate{ override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. //Text Fieldのdelegate通知を設定 inputText.delegate = self } @IBOutlet weak var inputText: UITextField! @IBOutlet weak var dispMap: MKMapView! func textFieldShouldReturn(_ textField: UITextField) -> Bool { //キーボードを閉じる(1) textField.resignFirstResponder() //入力された文字を取り出す(2) if let searchkey = textField.text{ //入力された文字をデバックエリアに表示(3) print(searchkey) //CLGeoconderwインスタンスを取得(5) let geocoder = CLGeocoder() //入力された文字から位置情報を取得(6) geocoder.geocodeAddressString(searchkey , completionHandler: {(placemarkerks, error) in //位置情報が存在する場合は、unweapPlacemarkersに取り出す(7) if let unwrapPlacemarkers = placemarkerks { //1件目の情報を取り出す(8) if let firstPlacemark = unwrapPlacemarkers.first{ //位置情報を取り出す if let location = firstPlacemark.location { //位置情報から緯度経度をtargetCoodinateに取り出す(10) let targetCoodinate = location.coordinate //緯度経度をデバックエリアに表示(11) print(targetCoodinate) } } } }) } //デフォルト動作を行うのでtrueを返す return true }

試したこと

ここに問題に対して試したことを記載してください。

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

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

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

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

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

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

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

guest

回答2

0

回答はKoichiSugiyamaさんがおっしゃっている通りなので、その補足です。

{}の数は常にペアになっている必要がありますが、Xcodeであれば、どちらか一方にキャレットを合わせれば、対応する中括弧がハイライトされると思います。
これが期待する場所でないものを探せば良いです。

イメージ説明

また、この手の問題はよく起きますので、普段から

  1. ソースは正しくインデントを行うようにする

 (選択してからctrl+iキーでも自動整形される(※期待通りにならないこともあり))

  1. if letなどの処理のインデントが深くなりすぎないようにする

 例えばguard letで早めにreturnするのも有用でしょう。
if let a = a, let b = bといった一度に複数個アンラップするのでもよいでしょう。

あたりを意識すると良いでしょう。

投稿2019/11/12 00:30

takabosoft

総合スコア8356

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

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

0

ベストアンサー

表示されているコードが全てだとしたら、エラーメッセージの通り}が足りていません。
最後の行に}を追加すると、エラーは消えると思います。

ただ、それだけでは単に括弧の数が合っているというだけで、プログラムとして意図したものになっているかは判りません。]が本来あるべき場所にあるかどうか、ソースを追って調べてみてください。

突き放すような回答ですが、そういう見落としやすいミスを見つけやすくするテクニックや便利なツールもいろいろあります。自力でそれらを使ってエラーをつぶしていくようにならないと、なかなか上達しないと思いますので、ここからはご自身で頑張って解決してみてください。

投稿2019/11/11 16:28

KoichiSugiyama

総合スコア3041

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問