【问题标题】:UUIDWithString crash when input invalid param [duplicate]输入无效参数时UUIDWithString崩溃[重复]
【发布时间】:2019-03-13 11:18:38
【问题描述】:

当我使用[CBUUID UUIDWithString:@"xxx"] 时,类似无效的uuid 字符串,应用程序将崩溃。 如何检查参数是否为有效的 UUID 格式。

错误是:

-[CBUUID initWithString:]、/BuildRoot/Library/Caches/com.apple.xbs/Sources/MobileBluetoothFramework/MobileBluetooth-115.5.1/CoreBluetooth/CoreBluetooth/CBUUID.m:149 中的断言失败

我不明白为什么断言发生在发布版本上。也许苹果忘记关闭断言开关。

【问题讨论】:

  • 你从哪里得到 UUID,系统还是你正在创建一个?
  • 输入的 UUID 可能来自任何地方,但我需要确保应用程序不会崩溃。所以在调用 UUIDWithString 之前,我必须确保输入字符串是有效格式

标签: ios uuid


【解决方案1】:

试试这个:

-(BOOL)isUUID:(NSString *)string
{
   return !![[NSUUID alloc] initWithUUIDString:string]; 
}

【讨论】:

  • YES,它可以验证完整的uuid格式,但是如果你短期使用'0FFE',NSUUID将返回nil。
  • @zedzhao 在这种情况下,您可能需要自己使用正则表达式,查看此链接:stackoverflow.com/questions/20652833/…
  • 这里!!有什么用?
  • @rmaddy 双重转换为 bool
  • 为什么不使用return [[NSUUID alloc] initWithUUIDString:string] != nil;
猜你喜欢
  • 2016-02-08
  • 2016-01-18
  • 1970-01-01
  • 2017-12-25
  • 2014-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多