回答編集履歴

1

追記

2017/10/10 06:13

投稿

MasakiHori
MasakiHori

スコア3384

test CHANGED
@@ -13,3 +13,29 @@
13
13
 
14
14
 
15
15
  onのままですとテストのためのコードが多量に含まれるためバイナリサイズがかなり大きくなります。
16
+
17
+
18
+
19
+
20
+
21
+ 追記:
22
+
23
+
24
+
25
+ objcのメソッドとSwiftのメソッド、プロパティの違い
26
+
27
+
28
+
29
+ すごく低レベルな話になるのですが、コンパイルするときに引数をどのレジスタに格納するかなどの規約がそれぞれの言語にあり、Swiftとobjcではかなり違っています。
30
+
31
+
32
+
33
+ そのためobjcから呼び出されるものはobjc用の入り口を作ってあげる必要があります。
34
+
35
+ Swift3まではコンパイラがある程度推論してそれを作っていたのですが、
36
+
37
+ Swift4からコンパイラの推論を廃止し@objcなどが付いているもののみにそれを作るようになりました。
38
+
39
+
40
+
41
+ プロパティに関しても同様にobjcは結構独特のアクセスを行っているため@objcが必要となります。