2016-06-08 2 views
0

Realm kann in Xcode nicht richtig nach Großbuchstaben sortiert werden. Ich habe folgendes Reich geschrieben, um nach Sprechernamen zu sortieren.Realm kann nicht richtig nach Großbuchstaben in Xcode sortieren

RLMResults *speakers = [[SpeakerDB objectsWhere:condition] sortedResultsUsingProperty:property ascending:YES]; 

Es ist korrekt sortiert, wenn alle klein und Großbuchstaben sind. Aber wenn diese sowohl mit Klein- als auch mit Großbuchstaben mischten, wurde das Sortieren falsch.

Choun-Ki JOO 
Chul Young CHOI 
CHAN Wing Kwong << it gone wrong sorted. 
CHEE Soon Phaik 
Connie LAI 

Bitte lassen Sie mich wissen, wie Sie dieses Problem lösen.

Antwort

2

Realm unterstützt derzeit keine Sortierung nach Groß- und Kleinschreibung. auch

ansehen ... https://github.com/realm/realm-cocoa/issues/2970

Wenn Sie sortiert ein Ergebnis erhalten möchten, wenn alle einen kleinen oder einen Großbuchstaben sind, sollten Sie eine Eigenschaft für das Sortieren hinzuzufügen. Die Eigenschaft speichert den gleichen Wert wie die Eigenschaft des Sprechernamens, enthält jedoch alle Kleinbuchstaben (oder Großbuchstaben). Wie folgt aus:

@interface SpeakerDB : RLMObject 

@property (nonatomic) NSString *name; 
@property NSString *acturalName; 
@property NSString *lowercaseMame; 

@end 

@implementation SpeakerDB 

+ (NSArray<NSString *> *)ignoredProperties { 
    return @[@"name"]; 
} 

- (void)setName:(NSString *)name { 
    _name = name; 
    self.acturalName = name; 
    self.lowercaseMame = [name lowercaseString]; 
} 

@end 

(Um die Setter außer Kraft setzen, die Definition der name Eigenschaft als ignoredProperty.)

Dann können Sie durch lowercaseMame sortieren.

RLMResults *speakers = [[SpeakerDB objectsWhere:condition] 
         sortedResultsUsingProperty:@"lowercaseMame" ascending:YES]; 
+0

Das ist das gleiche wie das, was ich getan habe, aber trotzdem als richtige Antwort markiert. – ppshein

Verwandte Themen