UIDevice属性和NSLog存在问题

| 我一直在尝试使用[[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]);
谁能帮我吗?谢谢!     
已邀请:
您需要使用NSString作为NSLog的第一个参数 例如
NSLog(@\"\\nDevice UDID: %@\\nDevice Name: %@\\nDevice Mode:%@\\n\",UDID, deviceName, deviceModel);
注意字符串开头之前的\'@ \'     
NSLog
将NSString用作格式字符串,而不是
const char*
。在字符串前加上
@
。 即:
NSLog(@\"\\nDevice UDID: %@\\nDevice Name: %@\\nDevice Mode:%@\\n\", ....
    
NSLog
需要
NSString
作为其格式参数。您应该这样呼叫
NSLog
NSLog(@\"\\nDevice UDID: %@\", [[UIDevice currentDevice] uniqueIdentifier]);
注意开头的\“ @ \”-这是常量
NSString
引用。您正在使用裸露的C字符串。     

要回复问题请先登录注册