回答編集履歴

2

追記の修正

2019/11/21 14:18

投稿

Kapustin
Kapustin

スコア1186

test CHANGED
@@ -60,7 +60,7 @@
60
60
 
61
61
 
62
62
 
63
- class ViewController: UIViewController ,UIGestureRecognizerDelegate, OSCServerDelegate {
63
+ class ViewController: UIViewController ,UIGestureRecognizerDelegate {
64
64
 
65
65
  @IBOutlet weak var label1: UILabel!
66
66
 

1

回答の追記

2019/11/21 14:18

投稿

Kapustin
Kapustin

スコア1186

test CHANGED
@@ -45,3 +45,73 @@
45
45
 
46
46
 
47
47
  ```
48
+
49
+
50
+
51
+ もし別クラスに分ける必要があれば、OSCHandlerクラスのインスタンスにViewControllerのインスタンスを知らせる必要があります。
52
+
53
+
54
+
55
+ ```
56
+
57
+ import UIKit
58
+
59
+ import SwiftOSC
60
+
61
+
62
+
63
+ class ViewController: UIViewController ,UIGestureRecognizerDelegate, OSCServerDelegate {
64
+
65
+ @IBOutlet weak var label1: UILabel!
66
+
67
+
68
+
69
+ var server = OSCServer(address: "", port: 8080) //OSC受信のセットアップ
70
+
71
+ let oscHandler = OSCHandler()
72
+
73
+
74
+
75
+ override func viewDidLoad() {
76
+
77
+ super.viewDidLoad()
78
+
79
+
80
+
81
+ oscHandler.viewController = self
82
+
83
+ server.start()
84
+
85
+ server.delegate = oscHandler
86
+
87
+ label1.text = "Not yet"
88
+
89
+ }
90
+
91
+
92
+
93
+ class OSCHandler: OSCServerDelegate {
94
+
95
+
96
+
97
+ var viewController: ViewController?
98
+
99
+
100
+
101
+ func didReceive(_ message: OSCMessage){
102
+
103
+ viewController?.label1.text = "Received!"
104
+
105
+ }
106
+
107
+ }
108
+
109
+
110
+
111
+
112
+
113
+ ```
114
+
115
+
116
+
117
+ 他にもOSCServerをOSCHandlerに持たせ、シングルトンにしてdelegateで処理するなど、やり方は色々ありそうです。