无法使用initWithUUIDString创建NSUUID

问题描述 投票:1回答:3

也许我遗漏了一些基本的东西,但我根本无法为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)]];

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

所以...我被卡住了......任何想法?

ios iphone ios6 ios7 crash
3个回答
0
投票

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


0
投票

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

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

0
投票

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

问题是一些代码通过类别覆盖了NSUUID的“init”选择器,并没有正确返回“self”。

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

© www.soinside.com 2019 - 2024. All rights reserved.