Нельзя (обычно) определять функцию внутри функции (или метода, или чего-то еще). Вы определяете alphabeticSort
внутри -sortedVariants
, верно?
Вместо этого сделайте
NSInteger alphabeticSort(id object1, id object2, void *reverse) {
if ((NSInteger *)reverse == NO) {
return [[object1 name] localizedCaseInsensitiveCompare:[object2 name]];
}
return [[object2 name] localizedCaseInsensitiveCompare:[object1 name]];
};
- (NSArray *)sortedVariants {
return [variants sortedArrayUsingFunction:alphabeticSort context:NULL];
}
Обратите внимание, что в Objective-C функция C, определенная между @implementation
... @end
, является просто функцией, определенной в области видимости файла, а несвязанный с классом.