回答編集履歴

2

Objective-C の用語に修正、一部主語補足

2016/10/25 06:15

投稿

iseebi
iseebi

スコア96

test CHANGED
@@ -1,6 +1,6 @@
1
- [Category] で増やしたメソッドは C# でも拡張メソッドとして追加されますので、static になります。
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

目的とするクラスが自分のライブラリにある場合の対処法を追加

2016/10/25 06:15

投稿

iseebi
iseebi

スコア96

test CHANGED
@@ -10,10 +10,14 @@
10
10
 
11
11
  - このメソッドを Xamarin 側から呼ぶ予定がないのであれば、定義自体を消してしまう。
12
12
 
13
+ - 目的とするクラスが NSDateFormatter ではなく同じライブラリに含まれており、別の箇所にカテゴリではない通常の定義があれば、そちらに [Category] に生成された Constructor の定義を移動させる。
14
+
13
- - ライブラリソースからビルドしているのであれば`+ (NSDateFormatter *) dateFormatterWith ...` というスタティックメソッドに追加してラップ、もしくは変更する。
15
+ - ライブラリソースにアクセスできるのであれば `+ (NSDateFormatter *) dateFormatterWith ...` というスタティックメソッドに追加してラップ、もしくは変更する。
14
16
 
15
17
  - ライブラリのソースにアクセスできないのであれば、問題のメソッドを使ってインスタンスを作って返すライブラリを自作し、バインディングする。
16
18
 
17
19
 
18
20
 
21
+
22
+
19
23
  ※ビルド時に obj/(Debug|Release) に作られる ios ディレクトリ以下に g.cs が作られるので、それを見ると理解が進むと思います。