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

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

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

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

Swift 2

Swift 2は、Apple社が独自に開発を行っている言語「Swift」のアップグレード版です。iOSやOS X、さらにLinuxにも対応可能です。また、throws-catchベースのエラーハンドリングが追加されています。

Q&A

1回答

1911閲覧

swiftでの//extra argument "error" in call について

afuroda

総合スコア36

Swift

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

Swift 2

Swift 2は、Apple社が独自に開発を行っている言語「Swift」のアップグレード版です。iOSやOS X、さらにLinuxにも対応可能です。また、throws-catchベースのエラーハンドリングが追加されています。

0グッド

0クリップ

投稿2016/06/20 08:54

下記のコードの
withMode: MCSessionSendDataMode.Unreliable, error: &error)
の部分で//Extra argument 'error' in call
というエラーが出てきました。
解決策が知りたいです。
皆様のお力を貸してください。
お願いします。

import UIKit

import MultipeerConnectivity

class ViewController: UIViewController, MCBrowserViewControllerDelegate,
MCSessionDelegate {

let serviceType = "LCOC-Chat" var browser : MCBrowserViewController! var assistant : MCAdvertiserAssistant! var session : MCSession! var peerID: MCPeerID! @IBOutlet var chatView: UITextView! @IBOutlet var messageField: UITextField! override func viewDidLoad() { super.viewDidLoad() self.peerID = MCPeerID(displayName: UIDevice.currentDevice().name) self.session = MCSession(peer: peerID) self.session.delegate = self // create the browser viewcontroller with a unique service name self.browser = MCBrowserViewController(serviceType:serviceType, session:self.session) self.browser.delegate = self; self.assistant = MCAdvertiserAssistant(serviceType:serviceType, discoveryInfo:nil, session:self.session) // tell the assistant to start advertising our fabulous chat self.assistant.start() } @IBAction func sendChat(sender: UIButton) { // Bundle up the text in the message field, and send it off to all // connected peers let msg = self.messageField.text!.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false) var error : NSError? self.session.sendData(msg, toPeers: self.session.connectedPeers, withMode: MCSessionSendDataMode.Unreliable, error: &error) if error != nil { print("Error sending data: \(error?.localizedDescription)") } self.updateChat(self.messageField.text!, fromPeer: self.peerID) self.messageField.text = "" } func updateChat(text : String, fromPeer peerID: MCPeerID) { // Appends some text to the chat view // If this peer ID is the local device's peer ID, then show the name // as "Me" var name : String switch peerID { case self.peerID: name = "Me" default: name = peerID.displayName } // Add the name to the message and display it let message = "\(name): \(text)\n" self.chatView.text = self.chatView.text + message } @IBAction func showBrowser(sender: UIButton) { // Show the browser view controller self.presentViewController(self.browser, animated: true, completion: nil) } func browserViewControllerDidFinish( browserViewController: MCBrowserViewController) { // Called when the browser view controller is dismissed (ie the Done // button was tapped) self.dismissViewControllerAnimated(true, completion: nil) } func browserViewControllerWasCancelled( browserViewController: MCBrowserViewController) { // Called when the browser view controller is cancelled self.dismissViewControllerAnimated(true, completion: nil) } func session(session: MCSession, didReceiveData data: NSData, fromPeer peerID: MCPeerID) { // Called when a peer sends an NSData to us // This needs to run on the main queue dispatch_async(dispatch_get_main_queue()) { let msg = String(data: data, encoding: NSUTF8StringEncoding) self.updateChat(msg!, fromPeer: peerID) } } // The following methods do nothing, but the MCSessionDelegate protocol // requires that we implement them. func session(session: MCSession, didStartReceivingResourceWithName resourceName: String, fromPeer peerID: MCPeerID, withProgress progress: NSProgress) { // Called when a peer starts sending a file to us } func session(session: MCSession, didFinishReceivingResourceWithName resourceName: String, fromPeer peerID: MCPeerID, atURL localURL: NSURL, withError error: NSError?) { // Called when a file has finished transferring from another peer } func session(session: MCSession, didReceiveStream stream: NSInputStream, withName streamName: String, fromPeer peerID: MCPeerID) { // Called when a peer establishes a stream with us } func session(session: MCSession, peer peerID: MCPeerID, didChangeState state: MCSessionState) { // Called when a connected peer changes state (for example, goes offline) }

}

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

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

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

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

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

guest

回答1

0

Swift2.0からエラー処理の仕方が変更になったので、以下の様に書きなおしてください。
※ 参考: Swift 2.0 エラー処理入門

swift

1do { 2 3 try self.session.sendData(msg!, toPeers: self.session.connectedPeers, withMode: .Unreliable) 4} catch let error as NSError { 5 6 print("Error sending data: \(error.description)") 7}

投稿2016/06/20 12:10

編集2016/06/20 12:12
_Kentarou

総合スコア8490

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問