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

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

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

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

Q&A

解決済

1回答

742閲覧

Multipeer Connectivity デバイス数取得(swift4)

denshatrain

総合スコア16

Swift

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

0グッド

0クリップ

投稿2019/01/14 21:03

前提・実現したいこと

swiftでMultipeer Connectivityフレームワークを使用してアプリを作っています。
そこで繋がっているデバイスの数を取得したいのですが、どうやったら良いのかわかりません。

該当のソースコード

swift

1import MultipeerConnectivity 2import Photos 3import UIKit 4 5final class ChatViewController: UIViewController, UITableViewDelegate, UITableViewDataSource { 6 7 var keyboardObservers: [Any] = [] 8 9 var data = [Int](1...53) 10 11 @IBOutlet weak var textField: UITextField! 12 @IBOutlet private weak var scrollView: UIScrollView! 13 @IBOutlet private weak var stackView: UIStackView! 14 @IBOutlet fileprivate weak var toolBarBottomConstraint: NSLayoutConstraint! 15 @IBOutlet weak var label: UILabel! 16 @IBOutlet weak var imageView: UIImageView! 17 18 @IBOutlet var table: UITableView! 19 20 private let sessionContainer: SessionContainer = { 21 return .init(displayName: Const.displayName, serviceType: Const.serviceType) 22 }() 23 24 @IBAction func browseForPeers(_ sender: UIBarButtonItem) { 25 let browserViewController: MCBrowserViewController = .init(serviceType: Const.serviceType, session: sessionContainer.session) 26 browserViewController.delegate = self 27 browserViewController.minimumNumberOfPeers = kMCSessionMinimumNumberOfPeers 28 browserViewController.maximumNumberOfPeers = kMCSessionMaximumNumberOfPeers 29 present(browserViewController, animated: true, completion: nil) 30 } 31 32 @IBAction func sendMessage(_ sender: UIBarButtonItem) { 33 guard let message = textField.text, !message.isEmpty else { 34 return 35 } 36 37 let transcript = sessionContainer.sendMessage(message) 38 insertTranscript(transcript) 39 40 textField.resignFirstResponder() 41 textField.text = "" 42 } 43 44 override func viewDidLoad() { 45 super.viewDidLoad() 46 47 sessionContainer.delegate = self 48 49// imageView.isUserInteractionEnabled = true 50// imageView.tag = 1 51 52 table.delegate = self 53 table.dataSource = self 54 } 55 56 func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 57 // 配列「data」の要素数 58 return data.count 59 } 60 61 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 62 // セルの型を作る 63 let cell = UITableViewCell(style: UITableViewCell.CellStyle.default, reuseIdentifier: "myCell") 64 // セルに表示するテキストを作る 65 cell.textLabel?.text = "(data[indexPath.row])" 66 // セルをリターンする 67 return cell 68 } 69 70 func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 71 72 let message = String(data[indexPath.row]) 73 74 let transcript = sessionContainer.sendMessage(message) 75 insertTranscript(transcript) 76 77 textField.resignFirstResponder() 78 79 } 80 81 func insertTranscript(_ transcript: Transcript) { 82 DispatchQueue.main.async { 83 } 84 } 85} 86 87// MARK: - KeyboardObservable 88extension ChatViewController { 89 90 func keyboardWillShow(_ notification: Notification) { 91 toolBarBottomConstraint.constant = -((notification.userInfo?[UIResponder.keyboardFrameEndUserInfoKey] as? CGRect)?.height ?? 0) 92 UIView.animate(withDuration: 0.3, animations: view.layoutIfNeeded) 93 } 94 95 func keyboardDidShow(_ notification: Notification) {} 96 97 func keyboardWillHide(_ notification: Notification) { 98 toolBarBottomConstraint.constant = 0 99 UIView.animate(withDuration: 0.3, animations: view.layoutIfNeeded) 100 } 101 102 func keyboardDidHide(_ notification: Notification) {} 103 104} 105 106// MARK: - SessionContainerDelegate 107extension ChatViewController: SessionContainerDelegate { 108 109 func sessionContainer(received transcript: Transcript) { 110 DispatchQueue.main.async { 111 //受け取った時にすること↓ 112 self.label.text = transcript.message 113 } 114 } 115 116} 117 118// MARK: - MCBrowserViewControllerDelegate 119extension ChatViewController: MCBrowserViewControllerDelegate { 120 121 func browserViewControllerDidFinish(_ browserViewController: MCBrowserViewController) { 122 browserViewController.dismiss(animated: true, completion: nil) 123 } 124 125 func browserViewControllerWasCancelled(_ browserViewController: MCBrowserViewController) { 126 browserViewController.dismiss(animated: true, completion: nil) 127 } 128 129 func browserViewController(_ browserViewController: MCBrowserViewController, shouldPresentNearbyPeer peerID: MCPeerID, withDiscoveryInfo info: [String : String]?) -> Bool { 130 return true 131 } 132 133} 134

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

swift4.2
iOS12.1

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

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

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

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

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

guest

回答1

0

ベストアンサー

自分も今後使いたいフレームワークなんですが、
ちらっと、使い方のページを見ると、それらしきものは登場しなかったです。

繋がった時のfuncで自前の変数でカウントしていくように
すればいいのではないでしょうか?

投稿2019/01/14 23:51

hameji001

総合スコア639

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

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

denshatrain

2019/01/17 21:08 編集

繋がった時のfuncってどこですか? ほとんどコピーしたので教えてください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問