我遇到问题[[NSUUID UUID] UUIDString]总是返回nil
我正在使用iOS9。此通话始终返回“nil”。我做错了什么?
NSUUID *uuid = [NSUUID UUID];
NSString *uuidString = [uuid UUIDString];
if(uuidString == nil) uuidString =[[NSUUID UUID] UUIDString];
if(uuidString == nil) return;
我已经尝试了两种方式,而且总是没有。
在断点代码中,信息图标显示以下消息:
(NSUUID *) uuid = no location, value may have been optimized out
答案 0 :(得分:0)
您必须在所有iOS设备上使用。它从6-9 iOS版本在我身边工作..
+ (NSString *)makeUUID {
CFUUIDRef theUUID = CFUUIDCreate(NULL);
NSString *uuidString = (__bridge_transfer NSString *) CFUUIDCreateString(NULL, theUUID);
CFRelease(theUUID);
return uuidString;
}
答案 1 :(得分:0)
这很有用,它确实是我所需要的,是一个可靠的唯一字符串,用于在短时间内管理异步消息。稍后当我准备好在发布新版本的应用程序之前进行最终测试时,我将重新安装Xcode。
- (NSString *)getUUID
{
NSMutableString *randomString = [NSMutableString stringWithCapacity: gf_uuidLen];
NSString *chars = [NSString stringWithFormat:@"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"];
for (int i=0; i<gf_uuidLen; i++) {
[randomString appendFormat: @"%C", [chars characterAtIndex: arc4random_uniform((unsigned int)[chars length])]];
}
return randomString;
}