Ich habe NSSArray
mit benutzerdefinierten Objekten, um das benutzerdefinierte Objekt mit benutzerdefinierten LogikNSArray von Objekten Sortierung mit Angepasste Logik
Benutzerdefinierte Objekt mit zwei Eigenschaft zu sortieren:
@property (nonatomic, strong) NSString *objectName;
@property (nonatomic, assign) BOOL isValidName;
wenn isValidName Eigenschaft false , Dann sollte das benutzerdefinierte Objekt die letzte Sortierreihenfolge sein. Für die Objekte ist die isValidName-Eigenschaft true. Dann sollte sie mit der Eigenschaft objectName in aufsteigender Reihenfolge sortiert werden.
Ich kann mit for loop
durch das Finden von Objekten mit der Eigenschaft isValidName false dann die Objekte aus dem Array entfernen und dann das Array danach sortieren kann ich die Objekte hinzufügen, die Eigenschaft isValidName false haben. Ich will das nicht machen.
Ich möchte, dass etwas wie unten Option, aber es funktioniert nicht. Bitte helfen in Bezug
[arr enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL * _Nonnull stop) {
NSArray *sortedTopics = [obj sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2){
if (obj1.isValidName) {
return NSOrderedAscending;
}
return [obj1.objectName compare: obj2.objectName options:NSCaseInsensitiveSearch];
}];
obj = sortedTopics;
}];