2012-02-25 5 views
2

iOSでは、アプリ開発者がデバイス固有のリソースまたはキーをInfo.plistに指定できるという優れた機能があります。これは、デバイス固有のサフィックスをリソースまたはキーのベース名に付けることによって実現します。現在、我々は~ipad~iphoneを持っています。iOSにはデバイス固有の接尾辞文字列を取得する機能がありますか?

私は、さまざまなデバイスで異なる値を持つ必要がある私のアプリの登録ドメインユーザのデフォルトのいくつかに同じシステムを使用したいと思います。現在のデバイスサフィックスを取得するために呼び出せるiOSの関数またはメソッドについて知っていますか?これを自分でコーディングするのは簡単ですが、可能であればシステムAPIを使用することをお勧めします。

システムが私に~ipad~iphoneを与えるかどうかは気にしません。文字列はデバイスごとに一意である必要があります。私はまた、人間が読めるものを好むので、私はUIDevice.userInterfaceIdiom(これは単なる数字です)を使うことに熱心ではないのです。私もUIDevice.modelを見ましたが、これが適切かどうかはわかりません。

答えて

2

だけで何も肯定的な回答がない場合には、これは所望の機能の私の実装がどのように見えるかです:

// NSStringAdditions.h 
@interface NSString(NSStringAdditions) 
- (NSString*) stringByAppendingDeviceSuffix; 
@end 


// NSStringAdditions.m 
- (NSString*) stringByAppendingDeviceSuffix 
{ 
    static NSString* deviceSuffix = nil; 
    if (! deviceSuffix) 
    { 
    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) 
     deviceSuffix = @"~iphone"; 
    else 
     deviceSuffix = @"~ipad"; 
    } 
    return [self stringByAppendingString:deviceSuffix]; 
} 
+0

ユーザー・インターフェース・イディオムは、iPhoneとiPadの間で区別するために使用するのに最適な値であり、かつあるもののデバイスタイプに関する情報を文字列形式で与えるUIDevice(例えばモデル)の他の文字列プロパティは、あなたが望む目的に使用するのは危険です。あなたが使っているアプローチは最高です。 – gamozzii

関連する問題