1

[[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]);

誰でも私を助けることができますか?ありがとう!

4

3 に答える 3

6

たとえば、NSLog の最初の引数として NSString を使用する必要があります。

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

文字列の先頭の「@」に注意してください

于 2011-05-23T18:20:11.400 に答える
2

NSLogではなく、フォーマット文字列として NSString を取りますconst char*。文字列の先頭に@.

すなわち:

NSLog(@"\nDevice UDID: %@\nDevice Name: %@\nDevice Mode:%@\n", ....
于 2011-05-23T18:20:04.870 に答える
0

NSLogNSStringformat 引数としてが必要です。NSLog次のように呼び出す必要があります。

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

先頭の「@」に注意してください。これは定数NSString参照です。裸の C 文字列を使用しています。

于 2011-05-23T18:20:45.893 に答える