NSPredicate Problem mit größer als gleich

8

Ich habe ein einfaches NSPredikat, das kein korrektes Ergebnis liefert

%Vor%

Seltsamerweise funktioniert dies für alle 6000 & gt; = 250, 7000 & gt; = 250, 8000 & gt; = 6000. Aber sobald squareFootage == 10000 ist das Prädikat für 10000 & gt; = irgendein kleinerer Wert falsch. Hinweis: 10000 für squareFootage ist ein maximaler Wert, der mit einem UISlider abgerufen wird. Wenn ich den Wert auf einen kleineren Wert reduziere, gibt das Prädikat "wahr als Ergebnis"

zurück

Fehle ich hier etwas und verwende Prädikat falsch?

    
rawatm 02.08.2013, 07:11
quelle

2 Antworten

22

Ich nehme an, dass Ihre Eigenschaft als string und nicht als Nummer gespeichert ist Die Werte werden als Strings verglichen:

%Vor%

Die Verwendung von NSNumber anstelle von NSString (oder alternativ ein Skalartyp wie NSInteger ) sollte das Problem beheben.

Wenn Sie den Datentyp der Eigenschaft squareFootage nicht ändern können, dann Folgendes Prädikat sollte funktionieren:

%Vor%     
Martin R 02.08.2013, 07:17
quelle
0

SIE KÖNNEN STRINGS VERGLEICHEN, indem Sie = & lt; verwenden. Wenn SELF.data.squareFootage eine NSNummer ist, versuchen Sie, filterSquareFootage in NSnumber- oder int-Wert zu konvertieren und vergleichen Sie sie so.

    
Radu 02.08.2013 07:20
quelle

Tags und Links