无法使用initWithUUIDString创建NSUUID

时间:2014-02-04 22:14:43

标签: ios iphone ios6 ios7 crash

也许我错过了一些基本的东西,但我甚至无法为iOS 6/7创建一个NSUUID。

我试过像

这样的东西
NSUUID *uuid = [NSUUID alloc] ;
[uuid initWithUUIDString:@"bec26202-a8d8-4a94-80fc-9ac1de37daa6"];

放入我的应用程序的applicationDidFinishLaunchingWithOptions方法,并在实际的iPhone上运行,我得到了

  

线程1:EXC_BAD_ACCESS(代码= 2,地址= 0x18cb76be3)

错误,当然应用程序崩溃。

我甚至尝试了另一种方法

NSUUID * nsuuid = [[UIDevice currentDevice] identifierForVendor];

也会崩溃。

我下载了Airdrop example,在某些时候使用了代码

NSString * _filename = [NSString stringWithFormat:@"profile-%@.customprofile", [[[NSUUID UUID] UUIDString] substringWithRange:NSMakeRange(24, 12)]];

虽然在演示中运行良好,但是当我将此代码复制到我自己的代码时,它再次崩溃。

所以......我被困了......有什么想法吗?

3 个答案:

答案 0 :(得分:0)

要创建NSUUID字符串,请执行以下操作...

NSString *uuid = [[NSUUID UUID] UUIDString];

答案 1 :(得分:0)

我尝试了你发布的代码来生成UUID,但我没有遇到崩溃。崩溃可能是由代码中的其他内容引起的。在Xcode中,转到Breakpoint Navigator,然后添加All Exceptions。它将在您的代码中找到异常的断点。

enter image description here

答案 2 :(得分:0)

为了关闭这个帖子,我发现了问题。 谢谢所有人的帮助。

问题在于某些代码通过类别覆盖了NSUUID的“init”选择器,并且未正确返回“self”。

因此,虽然“alloc”有效,但任何类型的“init”都没有。