teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

akabeeさん!

2017/09/01 08:25

投稿

fuzzball
fuzzball

スコア16733

answer CHANGED
@@ -36,3 +36,21 @@
36
36
  }
37
37
  ```
38
38
 
39
+ # Swift
40
+
41
+ **akabee**さんの回答を書き直してみました。
42
+
43
+ ```swift
44
+ func call1() {print("call1")}
45
+ func call2() {print("call2")}
46
+ func call3() {print("call3")}
47
+ func call4() {print("call4")}
48
+
49
+ let funcList = [call1, call2, call3, call4]
50
+ funcList.forEach {$0()}
51
+
52
+ //もしくは、
53
+
54
+ let funcList = [call1(), call2(), call3(), call4()]
55
+ funcList.forEach {$0}
56
+ ```

2

\+Swift

2017/09/01 08:25

投稿

fuzzball
fuzzball

スコア16733

answer CHANGED
@@ -1,4 +1,11 @@
1
+ # Objective-C
2
+
1
3
  ```objectivec
4
+ - (void)call1 {NSLog(@"call1");}
5
+ - (void)call2 {NSLog(@"call2");}
6
+ - (void)call3 {NSLog(@"call3");}
7
+ - (void)call4 {NSLog(@"call4");}
8
+
2
9
  for (int i = 1; i <= 4; i++) {
3
10
  NSString *name = [NSString stringWithFormat:@"call%zd", i];
4
11
  SEL sel = NSSelectorFromString(name);
@@ -8,4 +15,24 @@
8
15
  NSLog(@"'%@' does not exist.", name);
9
16
  }
10
17
  }
11
- ```
18
+ ```
19
+
20
+ # Swift (with Objective-C)
21
+
22
+ ```swift
23
+ @objc func call1() {print("@call1")}
24
+ @objc func call2() {print("@call2")}
25
+ @objc func call3() {print("@call3")}
26
+ @objc func call4() {print("@call4")}
27
+
28
+ for i in 1...4 {
29
+ let name = "call\(i)"
30
+ let sel = Selector(name)
31
+ if self.responds(to: sel) {
32
+ self.perform(sel)
33
+ } else {
34
+ print("'\(name)' does not exist.")
35
+ }
36
+ }
37
+ ```
38
+

1

英語。

2017/09/01 01:40

投稿

fuzzball
fuzzball

スコア16733

answer CHANGED
@@ -5,7 +5,7 @@
5
5
  if ([self respondsToSelector:sel]) {
6
6
  [self performSelector:sel];
7
7
  } else {
8
- NSLog(@"does not exist '%@'.", name);
8
+ NSLog(@"'%@' does not exist.", name);
9
9
  }
10
10
  }
11
11
  ```