回答編集履歴

2

その3

2016/12/15 01:24

投稿

fuzzball
fuzzball

スコア16731

test CHANGED
@@ -59,3 +59,89 @@
59
59
  }
60
60
 
61
61
  ```
62
+
63
+
64
+
65
+ # (その3) メンバ変数の対応
66
+
67
+
68
+
69
+ 私の方法(その1、その2)はもちろんのこと、fromageblancさんの方法も、関数の外では使えないようなので、photoOutputの定義部分には適用できないですね。
70
+
71
+
72
+
73
+ ということで‥
74
+
75
+
76
+
77
+ ## (3-1) Anyを使う
78
+
79
+
80
+
81
+ 使うときにキャストしないといけないことがあると思います。
82
+
83
+
84
+
85
+ ```swift
86
+
87
+ class Hoge {
88
+
89
+ var photoOutput: Any?
90
+
91
+
92
+
93
+ func hoge() {
94
+
95
+ if #available(iOS 10, *) {
96
+
97
+ photoOutput = AVCapturePhotoOutput()
98
+
99
+ }
100
+
101
+ }
102
+
103
+ }
104
+
105
+ ```
106
+
107
+
108
+
109
+ ## (3-2) @available()を使う
110
+
111
+
112
+
113
+ ただし、ストアドプロパティには使えないようなのでタイププロパティにします。
114
+
115
+ `(クラス名).(プロパティ名)`でアクセスします。
116
+
117
+
118
+
119
+ ```swift
120
+
121
+ class Hoge {
122
+
123
+ @available(iOS 10.0, *) //10.0以上でのみ定義される
124
+
125
+ static var photoOutput: AVCapturePhotoOutput!
126
+
127
+
128
+
129
+ func hoge() {
130
+
131
+ if #available(iOS 10, *) {
132
+
133
+ Hoge.photoOutput = AVCapturePhotoOutput()
134
+
135
+ }
136
+
137
+ }
138
+
139
+ }
140
+
141
+ ```
142
+
143
+
144
+
145
+ 3-1も3-2も、未検証ですし、やり方としていいのか悪いのかも分かりません。
146
+
147
+

1

Swift2

2016/12/15 01:23

投稿

fuzzball
fuzzball

スコア16731

test CHANGED
@@ -1,3 +1,7 @@
1
+ Swift2なのでSwift3の場合は適当に修正して下さい。
2
+
3
+
4
+
1
5
  # (その1) iOSのバージョンを調べる
2
6
 
3
7