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

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

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

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

Swift

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

Q&A

1回答

1769閲覧

value of optional type ‘String?’ not unwrapped; did you mean to use ‘!’ or ‘?’?の解決

harugane

総合スコア6

Xcode

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

Swift

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

0グッド

0クリップ

投稿2016/12/06 08:27

編集2016/12/06 09:25

###前提・実現したいこと
MultipeerConnectivityフレームワークを使用したp2p通信可能なチャットアプリケーションを作成しています。
エラーを解決したい

###発生している問題・エラーメッセージ
value of optional type ‘String?’ not unwrapped; did you mean to use ‘!’ or ‘?’?
が表示される。

###該当のソースコード

swift

1let msg = self.messageField.text.dataUsingEncoding(NSUTF8StringEncoding, 2 allowLossyConversion: false) 3 var error : NSError? 4 self.session.sendData(msg, toPeers: self.session.connectedPeers,withMode: MCSessionSendDataMode.Unreliable, error: &error) //ここにエラー 5if error != nil { 6 print("Error sending data: \(error?.localizedDescription)") 7 } 8 self.updateChat(self.messageField.text, fromPeer: self.peerID) // ここにエラー 9 self.messageField.text = "" 10 }

###補足情報(言語/FW/ツール等のバージョンなど)
言語はswift,開発環境はXcode7.3

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

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

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

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

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

fuzzball

2016/12/06 08:41

コードは ``` で囲って下さい。
harugane

2016/12/06 08:53

囲みました。意図が違ったら申し訳ありません。
fuzzball

2016/12/06 09:23

' (シングルクォート)ではなく ` (バッククォート)です。
guest

回答1

0

丸投げ回答ですみません。コメントを読んで理解して下さい。
動作確認はしていません。

swift

1if let text = self.messageField.text { 2 //※↑アンラップ & 以降はtextでアクセス 3 4 if let msg = text.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false) { 5 //※↑アンラップ & 以降はmsgでアクセス 6 7 //※エラーハンドリングは do~try~catchで 8 do { 9 try self.session.sendData(msg, toPeers: self.session.connectedPeers, withMode: MCSessionSendDataMode.Unreliable) 10 11 //正常終了処理 12 self.updateChat(text, fromPeer: self.peerID) 13 self.messageField.text = "" //※ここはそのまま 14 15 } catch { 16 //エラー処理 17 print("Error sending data") 18 } 19 20 } else { 21 print("msg is nil.") 22 } 23} else { 24 print("text is nil.") 25}

投稿2016/12/06 09:31

fuzzball

総合スコア16731

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問