「Xamarin.MacでOSのバージョンを取得する」を編集中

ナビゲーションに移動 検索に移動

警告: ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。ログインまたはアカウントを作成すれば、あなたの編集はその利用者名とともに表示されるほか、その他の利点もあります。

この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。

最新版 編集中の文章
1行目: 1行目:
 
==概要==
 
==概要==
 
[[Xamarin.Mac]]に存在しない標準ライブラリを[[P/Invoke]]で叩く際には[[OS]]のバージョンにより[[API]]があったりなかったりして[[条件分岐]]に迫られることが多い。
 
[[Xamarin.Mac]]に存在しない標準ライブラリを[[P/Invoke]]で叩く際には[[OS]]のバージョンにより[[API]]があったりなかったりして[[条件分岐]]に迫られることが多い。
基本的に[[MacOS]]は[[Windows]]のように古いAPIも継続して使えるなどという軟弱な仕様ではない。
+
基本的に[[Mac OS X]]は[[Windows]]のように古いAPIも継続して使えるなどという軟弱な仕様ではない。
MacOSは良くも悪くも代謝を施し市場活性化のためにバッサリ切り捨てが頻繁に起きる。
+
良くも悪くも代謝を施し市場活性化のためにバッサリ切り捨てである。
そのためバージョンを取得する手段が重要になってくる。
 
  
 
==実装:SystemVersion.plistから抜く==
 
==実装:SystemVersion.plistから抜く==
/System/Library/CoreServices/SystemVersion.plistというファイルから抜けるようだ。
+
SystemVersion.plistというファイルから抜けるようだ。
 
<source lang="csharp">
 
<source lang="csharp">
var version = NSDictionary.FromFile(@"/System/Library/CoreServices/SystemVersion.plist");
+
            var version = NSDictionary.FromFile(@"/System/Library/CoreServices/SystemVersion.plist");
Console.WriteLine(version);
+
            Console.WriteLine(version);
 
</source>
 
</source>
  
25行目: 24行目:
 
[[Xamarin]]のNSDictionaryはIDictionaryを実装しているので以下のように手軽にアクセスできる。
 
[[Xamarin]]のNSDictionaryはIDictionaryを実装しているので以下のように手軽にアクセスできる。
 
<source lang="csharp">
 
<source lang="csharp">
Console.WriteLine(version["ProductVersion"]);
+
            Console.WriteLine(version["ProductVersion"]);
 
</source>
 
</source>
  
 
[[文字列]]では扱いにくい場合は[[.NET]]標準のVersionクラスを使えばパースも簡単にできる。
 
[[文字列]]では扱いにくい場合は[[.NET]]標準のVersionクラスを使えばパースも簡単にできる。
 
<source lang="csharp">
 
<source lang="csharp">
var v = new Version(version["ProductVersion"].ToString());
+
            var v = new Version(version["ProductVersion"].ToString());
Console.WriteLine(v.Major);
+
            Console.WriteLine(v.Major);
Console.WriteLine(v.Minor);
+
            Console.WriteLine(v.Minor);
Console.WriteLine(v.Build);
+
            Console.WriteLine(v.Build);
 
</source>
 
</source>
  
40行目: 39行目:
 
[[Mac OS X 10.9]]([[Mavericks]])以下は切り捨てるというのであればこの方法が推奨となるようだ。
 
[[Mac OS X 10.9]]([[Mavericks]])以下は切り捨てるというのであればこの方法が推奨となるようだ。
 
<source lang="csharp">
 
<source lang="csharp">
var version = NSProcessInfo.ProcessInfo.OperatingSystemVersion;
+
            var version = NSProcessInfo.ProcessInfo.OperatingSystemVersion;
Console.WriteLine(version);
+
            Console.WriteLine(version);
 
</source>
 
</source>
  
47行目: 46行目:
 
*[[Xamarin.Mac/アクセシビリティの許可の有無を取得する]]
 
*[[Xamarin.Mac/アクセシビリティの許可の有無を取得する]]
 
*[[Xamarin.Mac/Global Event Monitorでキー入力を監視する]]
 
*[[Xamarin.Mac/Global Event Monitorでキー入力を監視する]]
 +
 +
==参考文献==
 +
{{reflist}}
 +
 +
{{stub}}
  
 
[[category:Xamarin.Mac]]
 
[[category:Xamarin.Mac]]
 
[[category:MonoMac]]
 
[[category:MonoMac]]

MonoBookへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細はMonoBook:著作権を参照)。 著作権保護されている作品は、許諾なしに投稿しないでください!

このページを編集するには、下記の確認用の質問に回答してください (詳細):

取り消し 編集の仕方 (新しいウィンドウで開きます)