回答編集履歴
2
Objective-C の用語に修正、一部主語補足
test
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
[Category] で増やしたメソッドは C# でも拡張メソッドとして
|
1
|
+
[Category] で増やしたメソッドは C# でも拡張メソッドとして定義されますので、static になります。
|
2
2
|
|
3
|
-
コンストラクタを拡張メソッドで増やすことはできないため、エラーとなります。
|
3
|
+
C# ではコンストラクタを拡張メソッドで増やすことはできないため、エラーとなります。
|
4
4
|
|
5
5
|
|
6
6
|
|
@@ -12,7 +12,7 @@
|
|
12
12
|
|
13
13
|
- 目的とするクラスが NSDateFormatter ではなく同じライブラリに含まれており、別の箇所にカテゴリではない通常の定義があれば、そちらに [Category] に生成された Constructor の定義を移動させる。
|
14
14
|
|
15
|
-
- ライブラリのソースにアクセスできるのであれば `+ (NSDateFormatter *) dateFormatterWith ...` というス
|
15
|
+
- ライブラリのソースにアクセスできるのであれば `+ (NSDateFormatter *) dateFormatterWith ...` というクラスメソッドに追加してラップ、もしくは変更する。
|
16
16
|
|
17
17
|
- ライブラリのソースにアクセスできないのであれば、問題のメソッドを使ってインスタンスを作って返すライブラリを自作し、バインディングする。
|
18
18
|
|
1
目的とするクラスが自分のライブラリにある場合の対処法を追加
test
CHANGED
@@ -10,10 +10,14 @@
|
|
10
10
|
|
11
11
|
- このメソッドを Xamarin 側から呼ぶ予定がないのであれば、定義自体を消してしまう。
|
12
12
|
|
13
|
+
- 目的とするクラスが NSDateFormatter ではなく同じライブラリに含まれており、別の箇所にカテゴリではない通常の定義があれば、そちらに [Category] に生成された Constructor の定義を移動させる。
|
14
|
+
|
13
|
-
- ライブラリ
|
15
|
+
- ライブラリのソースにアクセスできるのであれば `+ (NSDateFormatter *) dateFormatterWith ...` というスタティックメソッドに追加してラップ、もしくは変更する。
|
14
16
|
|
15
17
|
- ライブラリのソースにアクセスできないのであれば、問題のメソッドを使ってインスタンスを作って返すライブラリを自作し、バインディングする。
|
16
18
|
|
17
19
|
|
18
20
|
|
21
|
+
|
22
|
+
|
19
23
|
※ビルド時に obj/(Debug|Release) に作られる ios ディレクトリ以下に g.cs が作られるので、それを見ると理解が進むと思います。
|