Проблемы со свойствами UIDevice и NSLog - PullRequest
1 голос
/ 23 мая 2011

Я пытался регистрировать параметры устройства, используя [[UIDevice currentDevice] ...] и NSLog. Я всегда получаю одно и то же предупреждение, несмотря на попытки по-разному это сделать.

Предупреждение, которое я получаю:

Passing argument 1 of 'NSLog' from incompatible pointer type

Вот все мои попытки:

1

NSString *UDID = [[UIDevice currentDevice] uniqueIdentifier];
    NSString *deviceName = [[UIDevice currentDevice] name];
    NSString *deviceModel = [[UIDevice currentDevice] model];

    NSLog("\nDevice UDID: %@\nDevice Name: %@\nDevice Mode:%@\n",UDID, deviceName, deviceModel);

2:

NSString *UDID = (NSString*)[[UIDevice currentDevice] uniqueIdentifier];
    NSString *deviceName = (NSString*)[[UIDevice currentDevice] name];
    NSString *deviceModel = (NSString*)[[UIDevice currentDevice] model];

    NSLog("\nDevice UDID: %@\nDevice Name: %@\nDevice Mode:%@\n",UDID, deviceName, deviceModel);

3

NSString *UDID = [NSString stringWithFormat:[[UIDevice currentDevice] uniqueIdentifier]];
    NSString *deviceName = [NSString stringWithFormat:[[UIDevice currentDevice] name]];
    NSString *deviceModel = [NSString stringWithFormat:[[UIDevice currentDevice] model]];

    NSLog("\nDevice UDID: %@\nDevice Name: %@\nDevice Mode:%@\n",UDID, deviceName, deviceModel);

4:

NSLog("\nDevice UDID: %@\nDevice Name: %@\nDevice Mode:%@\n",[[UIDevice currentDevice] uniqueIdentifier], [[UIDevice currentDevice] name], [[UIDevice currentDevice] model]);

Кто-нибудь может мне помочь? Спасибо!

Ответы [ 3 ]

6 голосов
/ 23 мая 2011

Вам необходимо использовать NSString в качестве первого аргумента NSLog Например

NSLog(@"\nDevice UDID: %@\nDevice Name: %@\nDevice Mode:%@\n",UDID, deviceName, deviceModel);

Обратите внимание на '@' перед началом строки

2 голосов
/ 23 мая 2011

NSLog принимает строку NSString в качестве строки формата, а не const char*. Добавьте в строку @.

т.е:.

NSLog(@"\nDevice UDID: %@\nDevice Name: %@\nDevice Mode:%@\n", ....
0 голосов
/ 23 мая 2011

NSLog требует NSString в качестве аргумента формата. Вы должны звонить NSLog так:

NSLog(@"\nDevice UDID: %@", [[UIDevice currentDevice] uniqueIdentifier]);

Обратите внимание на "@" в начале - это постоянная ссылка NSString. Вы используете голые строки C.

...