Wie erstelle ich ein objective-c-Methode, die eine Rückkehr blockieren
-(NSMutableArray *)sortArrayByProminent:(NSArray *)arrayObject
{
NSArray * array = [arrayObject sortedArrayUsingComparator:^(id obj1, id obj2) {
Business * objj1=obj1;
Business * objj2=obj2;
NSUInteger prom1=[objj1 .prominent intValue];
NSUInteger prom2=[objj2 .prominent intValue];
if (prom1 > prom2) {
return NSOrderedAscending;
}
if (prom1 < prom2) {
return NSOrderedDescending;
}
return NSOrderedSame;
}];
NSMutableArray *arrayHasBeenSorted = [NSMutableArray arrayWithArray:array];
return arrayHasBeenSorted;
}
Also im Grunde habe ich in diesem block, die ich zu Sortieren array.
Nun will ich schreiben, eine Methode, die return block.
Wie würde ich tun?
Versuchte ich
+ (NSComparator)(^)(id obj1, id obj2)
{
(NSComparator)(^ block)(id obj1, id obj2) = {...}
return block;
}
Sagen wir einfach, es funktioniert noch nicht.
- Was genau meinst du mit "es funktioniert nicht"? Das ist viel zu breit für eine ordentliche Fehlerbeschreibung.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einer Signatur der Methode die Rückgabe eines block-wie sollte dies
Dieser zersetzt sich zu:
Update: In Ihrer speziellen situation
NSComparator
ist schon ein block-Typ. Seine definition ist:Als solche, alles, was Sie tun müssen, ist wieder in dieser Typdefinition:
NSComparator
ist schon ein block-Typ. Sie meinte wohl entweder+ (NSComparisonResult (^)(id, id))comparator
oder+ (NSComparator)comparator
.+ (NSComparator)comparator
aus den beiden, für diese Frage mindestens.