比较两个NSUUIDs的最佳方法是什么(代码最少、最快、最可靠)?
下面是一个示例:
-(BOOL)isUUID:(NSUUID*)uuid1 equalToUUID:(NSUUID*)uuid2
{
return ... // YES if same or NO if not same
}发布于 2013-12-11 17:31:12
来自NSUUID类引用:
注意: NSUUID类与CoreFoundation的CFUUIDRef不是免费桥接的.如果需要,使用UUID字符串在CFUUID和NSUUID之间进行转换。两个NSUUID对象不能通过指针值进行比较(如CFUUIDRef );请使用isEqual:比较两个NSUUID实例。
因此,只需使用以下内容:
-(BOOL)isUUID:(NSUUID*)uuid1 equalToUUID:(NSUUID*)uuid2
{
return [uuid1 isEqual:uuid2];
}发布于 2013-12-11 17:45:01
您不需要为此创建额外的方法,因为文档声明:
NSUUID对象不能通过指针值进行比较(如CFUUIDRef那样);请使用isEqual:来比较两个NSUUID实例。
所以BOOL sameUUID = [uuid1 isEqual:uuid2];也是
发布于 2017-12-29 00:03:24
NSUUID有效地包装了uuid_t。
解决办法..。
@implementation NSUUID ( Compare )
- ( NSComparisonResult ) compare : ( NSUUID * ) that
{
uuid_t x;
uuid_t y;
[ self getUUIDBytes : x ];
[ that getUUIDBytes : y ];
const int r = memcmp ( x, y, sizeof ( x ) );
if ( r < 0 )
return NSOrderedAscending;
if ( r > 0 )
return NSOrderedDescending;
return NSOrderedSame;
}
@endhttps://stackoverflow.com/questions/20525829
复制相似问题