Warum NSNotFound ist nicht -1, sondern NSIntegerMax
NSNotFound ist definiert als NSIntegerMax, die unterschiedlichen Werte, die auf 32-bit-und 64-bit, das bringt eine Menge Unannehmlichkeiten für die persistenten und verteilten env. Warum nicht definieren es als -1?
PS, In ObjC und Cocoa, einige indexOf... Methoden gibt NSNotFound aber einige gibt -1 zurück, gibt es einen Grund, diese Ergebnisse sind inkonsistent.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nun, die Antwort ist wahrscheinlich nicht, weil es manchmal zurück, wie eine unsigned-Wert - in Objective-C Konvertierungen zwischen signed und unsigned sind wirksam bit-Kopien, damit Sie vergleichen können, ein unsigned " -1 " und bekommen die Antwort, die Sie erwarten (die Werte alle diejenigen - -1 unterzeichnet, maximale integer als unsigned). Sehen Antwort auf diese Frage.
Kommen wir also zu deinem zweiten Teil der Frage, warum in der Inkonsequenz? Gut Vielfalt ist die Würze des Lebens, oder anders ausgedrückt es gibt jetzt so queer as folk - die Menschen sind einfach nur inkonsequent, nicht komplizierter als das!
Dieser Hinweis von die docs ist wohl relevant:
Fast sicher, weil das einige der Funktionen, die es sind, die eine unsigned Wert, wie
NSIndexOfObject
: