1

ここでユーザーのデバイスを検出する方法をSOで調べた後:iOS-デバイスのメーカーとモデルを取得する方法は?

デバイスに応じてアラートを表示するクイックテストアプリを作成しました。このコードからアラートを受け取りません。私はここで何が欠けている/間違っているのですか?

#import "ViewController.h"
#import <sys/utsname.h>

 NSString* machineName()
{
struct utsname systemInfo;
uname(&systemInfo);

return [NSString stringWithCString:systemInfo.machine
                          encoding:NSUTF8StringEncoding];
}



@interface ViewController ()


@end




- (IBAction)btn:(id)sender {

if ([machineName() isEqualToString:@"iPhone5,1"]){


    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Alert" message:@"Checking device iphone5" delegate:nil cancelButtonTitle: @"Ok" otherButtonTitles: nil];

    [alert show];




    } else  if ([machineName() isEqualToString:@"iPhone4,1"]){



    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Alert" message:@"Checking device iphone4" delegate:nil cancelButtonTitle: @"Ok" otherButtonTitles: nil];

    [alert show];

     }


  }
4

1 に答える 1

1

machineフィールドstruct utsnameはマシンハードウェアプラットフォームであり"x86_64"、プログラムがiOSシミュレータで実行されている場合です。

実際のデバイスでのみ、のような文字列を取得します"iPhone5,1"

于 2013-02-05T21:39:50.207 に答える