什么是NSComparisonResult
和NSComparator
?
我看过一种类型定义,类似这样:
typedef NSComparisonResult (^NSComparator)(id obj1, id obj2);
与函数指针有什么不同吗?
另外,我什至无法猜测
^
符号的含义。 最佳答案
^
表示块类型,概念上类似于函数指针。
typedef NSComparisonResult (^NSComparator)(id obj1, id obj2);
// ^ ^ ^
// return type of block type name arguments
这意味着
NSComparator
类型是一个块,它接受两个名为id
和obj1
的obj2
类型的对象,并返回一个NSComparisonResult
。具体来说,
NSComparator
是在Foundation Data Types reference中定义的。要了解有关C块的更多信息,请查看此ADC文章Blocks Programming Topics。
例子:
NSComparator compareStuff = ^(id obj1, id obj2) {
return NSOrderedSame;
};
NSComparisonResult compResult = compareStuff(someObject, someOtherObject);