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

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

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

Xcode 7は、ソフトウェア開発のためのアップルの統合開発環境であるXcodeのバージョン。UIを作成するために用いるグラフィカルツールです。iOS9/OS X El Capitan/watchOS2に対応。Swift 2コンパイラーが搭載されています。

Xcode

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

Swift

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

Q&A

解決済

3回答

1318閲覧

Expected declaration が解決できません。

taka_teacher

総合スコア14

Xcode 7

Xcode 7は、ソフトウェア開発のためのアップルの統合開発環境であるXcodeのバージョン。UIを作成するために用いるグラフィカルツールです。iOS9/OS X El Capitan/watchOS2に対応。Swift 2コンパイラーが搭載されています。

Xcode

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

Swift

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

0グッド

0クリップ

投稿2018/05/22 01:43

編集2018/05/22 02:26

snsの勉強のために、コードを書いています。

Expected declarationエラーがコマンド+Bで出てしまいます。

原因として
1 カメラの使い方が間違っている
2 extentionの使い方が間違っている
3 そもそもコードの書き方が間違っている

のどれかだとは思いますが、僕の能力ではわかりません。
解決方法がわかる方、どうぞよろしくお願いします。

学習のため、xcode7.0のバージョンで記しています。

swift

1import UIKit 2import Photos 3 4class PostViewController: UIViewController { 5 6 7 //@IBOutlet var navigationBar: UINavigationItem! 8 9 @IBOutlet var navigationBar: UINavigationBar! 10 11 @IBOutlet var userProfileImage: UIImageView! 12 13 14 @IBOutlet var postText: UITextView! 15 16 17 @IBOutlet var postImage: UIImageView! 18 19 20 @IBOutlet var usernameLabel: UILabel! 21 22 @IBOutlet var createdAt: UILabel! 23 24 @IBOutlet var backButton: UIBarButtonItem! 25 @IBOutlet var postButton: UIBarButtonItem! 26 27 private var PostImage: UIImage 28 29 30 31 32 override func viewDidLoad() { 33 super.viewDidLoad() 34 35 // navigationBar.tintColor = UIColor.whiteColor() 36 37 navigationBar.tintColor = UIColor.whiteColor() 38 navigationBar.titleTextAttributes = [NSFontAttributeName: UIColor.whiteColor()] 39 navigationBar.barTintColor = UIColor(hex: "1A237E") 40 41 userProfileImage.layer.cornerRadius = userProfileImage.layer.bounds.width/2 42 userProfileImage.clipsToBounds = true 43 44 postText.text = "" 45 postText.becomeFirstResponder() 46 47 //notificationcenter 48 NSNotificationCenter.defaultCenter().addObserver(self, selector: "keyBoardWillHide:", name: UIKeyboardWillHideNotification, object: nil) 49 NSNotificationCenter.defaultCenter().addObserver(self, selector: "keyBoardWillShow:", name: UIKeyboardWillShowNotification, object: nil) 50 51 } 52 53 override func didReceiveMemoryWarning() { 54 super.didReceiveMemoryWarning() 55 // Dispose of any resources that can be recreated. 56 } 57 58 deinit { 59 NSNotificationCenter.defaultCenter().removeObserver(self) 60 } 61 62 63 func keyboardWillHide(notificaton: NSNotification){ 64 65 self.postText.contentInset = UIEdgeInsetsZero 66 self.postText.scrollIndicatorInsets = UIEdgeInsetsZero 67 68 } 69 70 func keyboardWillShow(notificaton: NSNotification){ 71 let userInfo = notificaton.userInfo ?? [:] 72 // let keyboardSize = (userInfo[UIKeyboardFrameEndUserInfoKey] as! NSValue).CGRectValue().size 73 let keyboardSize = (userInfo[UIKeyboardFrameEndUserInfoKey] as! NSValue).CGRectValue().size 74 75 self.postText.contentInset = UIEdgeInsets(top: 0, left: 0, bottom: keyboardSize.height+10, right: 0) 76 self.postText.scrollIndicatorInsets = self.postText.contentInset 77 78 79 80 } 81 82 83 @IBAction func backButton_Clicked(sender: AnyObject) { 84 85 postText.resignFirstResponder() 86 dismissViewControllerAnimated(true, completion: nil) 87 88 } 89 90 91 @IBAction func postButtonClicked(sender: AnyObject) { 92 93 postText.resignFirstResponder() 94 dismissViewControllerAnimated(true, completion: nil) 95 } 96 97 98 99 100} 101 102extension PostViewController:UIImagePickerControllerDelegate,UINavigationControllerDelegate { 103 @IBAction func PickFeaturedImage(sender: AnyObject) { 104 105 let authorization = PHPhotoLibrary.authorizationStatus() 106 if authorization == .NotDetermined { 107 PHPhotoLibrary.requestAuthorization({ (status) -> Void in 108 dispatch_async(dispatch_get_main_queue(), { () -> Void in 109 self.PickFeaturedImage(sender) 110 }) 111 }) 112 return 113 114 if authorization == .Authorized { 115 let controller = ImagePickerSheetController() 116 controller.addAction(ImageAction(title: NSLocalizedString("Take a Photo or Video", comment: "ActionTitle"), secondaryTitle: NSLocalizedString("Use this one", comment: "ActionTitle"), handler: { (_) -> () in 117 self.presentCamera() 118 119 }, secondaryHandler: { (action, numberOfPhoto) -> () in 120 controller.getSelectedImagesWithCompletion({ (images) -> Void in 121 self.PostImage = images[0] 122 self.postImage.image = self.PostImage 123 }) 124 })) 125 controller.addAction(ImageAction(title: NSLocalizedString("Cancel", comment: "ActionTitle"), style: .Cancel, handler: nil)) 126 127 presentViewController(controller, animated: true, completion: nil) 128 } 129 130 } 131 132 func presentCamera() { 133 let imagePicker = UIImagePickerController() 134 imagePicker.allowsEditing = false 135 imagePicker.delegate = self 136 imagePicker.sourceType = UIImagePickerControllerSourceType.Camera 137 self.presentViewController(imagePicker, animated: true, completion: nil) 138 139 } 140 141 func imagePickerController(picker: UIImagePickerController, didFinishPickingImage image: UIImage!, editingInfo: [NSObject :AnyObject]!) { 142 self.postImage.image = image 143 self.dismissViewControllerAnimated(true, completion: nil) 144 145 } 146 147}

エラー画像

イメージ説明

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

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

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

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

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

guest

回答3

0

自己解決

expected declarationにおいてのエラーは
最後の閉じ括弧が不足していることにより、解決しました。

エラーを調べるために行ったこと
<teratail使用前>検証時間:2日
・エラーの検索と翻訳
・翻訳により専門用語がわからないため、さらに検索。
・どうしても解決できないので、学習の動画内容と同じ環境にして挑戦。
・基本にかえって再度学習。(codeの基本とカメラ使用時のcodeの書き方)

<teratail使用後>5分
・数分で回答していただき、エラーの原因が閉じ括弧にあることがわかりました。

その後、新たなエラーが出ましたが、それはまた別の質問で解決できるようにする。

反省点:
質問1つにつき、一つの回答。次のエラーまで求めることは相手を不快にしてしまい、このサイトの目的からずれてしまうこと。

感想
完全に初心者は要点を絞って、質問するようにする。調子に乗って、次から出てくるエラーの質問をしないようにする。

回答していただいた方には感謝の気持ちでいっぱいです。始めたばかりの超初心者ですが、この先もどうぞよろしくお願いします。

投稿2018/05/22 03:14

taka_teacher

総合スコア14

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

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

0

閉じかっこが一つ足りないだけじゃないでしょうか。

投稿2018/05/22 02:14

kazto

総合スコア7196

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

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

taka_teacher

2018/05/22 02:23

ありがとうございます。やってみましたが、新たにpresentCameraのエラーが出ました。
kazto

2018/05/22 02:47

いまいちど、https://teratail.com/help/question-tips をお読みになられることをお勧めします。 本件に関しては、いったん解決済みとして、また困ったときに、改めて質問をするのが良いと思います。
taka_teacher

2018/05/22 02:56

ありがとうございます。全く分からないまま、解決方法を模索していましたが、使い方をよく理解してから再度質問させてください。
guest

0

PostImageの初期値がありません。とりあえず、

swift

1private var PostImage: UIImage = UIImage()

でいいと思います。

なお、質問内のコードを見る限りではPostImageは不要です。

swift

1self.postImage.image = images[0] //PostImageを介さず直接代入

追記

エラーメッセージをしっかり読んで下さい。

Class 'PostViewController' has no initializers Stored property 'PostImage' without initial value prevents synthesized initializers

というようなエラーが出ていると思います。
一行目しか見ていないようですが、二行目を見れば一目瞭然のエラーです。

編集後の質問への回答

swift

1@IBAction func PickFeaturedImage(sender: AnyObject) {

の閉じカッコが無いように見えますが。

投稿2018/05/22 01:50

編集2018/05/22 02:12
fuzzball

総合スコア16731

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

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

taka_teacher

2018/05/22 02:04

早急な対応誠にありがとうございます。 エラーメッセージが少々違いました。 一番最後に「Expected declaration」のみのエラーです。 教えていただいた通りにコードしましたが、まだ同じ状態です。 質問内容を修正かけて出させていてだきます。
taka_teacher

2018/05/22 02:09

エラーを調べるために、翻訳することが多いのですが、以前のエラーは解決済みでした。大変申し訳ありません。
taka_teacher

2018/05/22 02:22

何度もすみません。全て指南通りタイプしたら、presentCameraのところでエラーが出ました。
fuzzball

2018/05/22 02:26

この質問は、あなたのアプリが完成するまで続ける気なのでしょうか?
taka_teacher

2018/05/22 02:28

すみません。慣れていない上に、不快にさせてしまいました。一つずつ解決できるように頑張ります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問