In Xcode bekomme ich den Fehler "direkten Vergleich eines String-Literals hat undefined Verhalten", und ich weiß, warum ich es bekomme, aber ist da eine Möglichkeit für mich, auf eine Schaltfläche zu klicken und Xcode entfernen zu lassen? Ich sage das, weil ich es an 370 Stellen in meiner App bekommen habe.Behebung "direkter Vergleich eines String-Literals hat undefiniertes Verhalten" automatisch
8
A
Antwort
13
Die Option clang zum Deaktivieren dieser Warnung lautet -Wno-objc-literal-compare
.
Warnungen gibt es jedoch aus einem Grund; Dies ist, weil der Vergleich mit NSString-Literalen mit ==
nicht garantiert, dass Sie sich wie erwartet verhalten. Verwenden Sie stattdessen isEqual:
oder isEqualToString:
und Sie können beide diese Warnung loswerden und vermeiden, dass dies später zu einem Bug für Sie wird.
Verwandte Themen
- 1. Undefiniertes Verhalten, oder: Hat Swift Sequenzpunkte?
- 2. Ist (++ i) ++ undefiniertes Verhalten?
- 3. gcc-4.9 undefiniertes Verhalten Sanitizer
- 4. Kann dies undefiniertes Verhalten verursachen?
- 5. Zuordnung und Zeiger, undefiniertes Verhalten?
- 6. reinterpret_cast/static_cast und undefiniertes Verhalten
- 7. Warum ist undefiniertes Verhalten in C zulässig?
- 8. Hat diese Const-Initialisierung durch const_cast ein undefiniertes Verhalten?
- 9. std :: lock_guard verursacht undefiniertes Verhalten
- 10. LLVM-Optimierungsfehler oder undefiniertes Verhalten?
- 11. C++ undefiniertes Verhalten mit Gewerkschaften
- 12. Wird ein unbestimmter Wert undefiniertes Verhalten gelesen?
- 13. Ist etwas undefiniertes Verhalten durch Auslassung?
- 14. ist undefiniertes Verhalten in gegebenem Code?
- 15. Wie verhindert man undefiniertes Verhalten aus Sicht eines Anwenders/eines neuen Entwicklers?
- 16. Ist Zeigervergleich undefiniertes oder nicht spezifiziertes Verhalten in C++?
- 17. Führt die Arithmetik einen Nullzeiger undefiniertes Verhalten aus?
- 18. Seltsames Verhalten mit gebundenen Eigenschaften und direkter Sichtbarkeitsänderung in ListView
- 19. Zugriff auf ein statisches Out of Scope undefiniertes Verhalten?
- 20. Hat während (i--) s + = a [i]; Undefiniertes Verhalten in C und C++ enthalten?
- 21. Warum hat der Index des C++ - Standards diesen Eintrag für "undefiniertes Verhalten"?
- 22. Reihenfolge der Auswertung: undefiniertes Verhalten? oder Kompilierer defekt?
- 23. Javascript Date Vergleich Seltsames Verhalten
- 24. Ruft dieser Missbrauch von Funktionsdeklarationen undefiniertes Verhalten auf?
- 25. Nicht-triviales Beispiel für undefiniertes Verhalten mit const_cast
- 26. Ist es undefiniertes Verhalten, einen freien Zeiger zu dereferenzieren?
- 27. Ist ein (leerer) Endlosschleife undefiniertes Verhalten in C?
- 28. Undefiniertes Verhalten von Operatoren im XOR-Swap-Algorithmus?
- 29. Ruft printf ohne einen richtigen Prototyp ein undefiniertes Verhalten auf?
- 30. Eine uint32-Variable in ein Bitfeld umwandeln - undefiniertes Verhalten?
Große Antwort. Verwenden Sie immer 'isEqualToString' vs' == ' –
Oh nein; Ich spreche darüber, dass Xcode durchläuft und alle diese Fehler ersetzt, nur damit ich es nicht tun muss. – Someone
Es gibt keinen einzigen Klick, der "all die Dinge, die diese Warnung verursachen" behebt, aber ein gut ausgearbeiteter regulärer Ausdruck könnte einen einfachen Such-/Ersetzungs-Job machen. – rickster