Xamarin.Macのコントリビュータになりました
Xamarin.Macなアプリは作ってないんですけどね。
何故かNSDistributedNotificationCenter.DefaultCenterの型がNSObjectになってるというツイートを見かけたのでPRにしてみたけど通るかな?https://t.co/T2aOtmWp7B
— ざまりん.ふぉーむずのソースコード読むマン🚲 (@ticktackmobile) 2018年6月12日
この時のPRが修正を受けつつマージされました。
同様に戻り値がNSObjectになってしまっているAPI1がたまにあるらしいので、見つけた人はxamarin-maciosのリポジトリにissue登録してあげてください。NSObjectになっている箇所と、正しい型が載っているAppleのドキュメントのリンクを載せてissue登録すれば、バージョンアップのタイミングで対応してくれると思います。
なんだったらTwitterで@ticktackmobileに教えてくれるのでも良いです。
参考までにPRコメントのやりとり(超意訳)
ワイ「NSObjectから正しい型に変更するPR作ったやで」
中の人A「これじゃあ破壊的変更になるから取り込めないやで」
中の人B「API互換性を維持するために#if XAMCORE_4_0
みたいなバージョン分岐作るとええで」
中の人C「ブランチ修正しといたで、これでいこか」
中の人D「ちょっとまって、古いバージョンでも正しい型で受け取れるメソッド追加するのはどうやろ」
中の人C「悪くないやん、ええんちゃう」
GitHub「マージしたやで」
ワイ「やったぜ」
#if XAMCORE_4_0
の部分は次のバージョン番号によって変わると思うので、新しめのコミットから探して真似すればPRもすんなり通るんじゃないかな。
-
たぶんヘッダーファイルではid型で定義されているのだと思う。↩