" [[NSUUID UUID] UUIDString]"总是回到零

时间:2015-10-01 20:05:47

标签: ios9 nsuuid

我遇到问题[[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

2 个答案:

答案 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;
}