2013-11-09 11 views
7

Ich erhalte eine Warnung, wenn ich meine App in iOS7 ausführe "'isa' ist veraltet", ich habe keine Ahnung, wie ich diese Warnmeldung beheben kann. Bitte irgendeine Hilfe zu diesem Thema.iOS 7: 'isa' ist veraltet

array->isa  = _JKArrayClass; 
+1

Ich würde empfehlen, JSONKit von Ihrem Projekt loszuwerden. Zum einen ist es aufgrund der verwendeten Sprach-Hacks nicht mit der 64-Bit-Architektur kompatibel. – macbirdie

Antwort

17

Enthalten <objc/runtime.h>.

alles wie array->isa = _JKArrayClass; Ersetzen mit object_setClass(array, _JKArrayClass)

Und alles wie class = array.isa mit class = object_getClass(array)

+0

Und bitte teilen Sie Ihre Gabel auf GitHub? – Ali

+0

Ich hatte diesen Fehler zweimal in einem Build. Ihr Update funktioniert für eines von ihnen, aber das andere scheint in einer Bibliothek zu sein, ich kann das nicht bearbeiten oder speichern. Wie würde ich das bitte reparieren? nicht sicher, woher die lib kam. – CthulhuJon

15

ich dachte, ich würde meine Lösung teilen Sie Benutzer da draußen Cocoapods. (Bitte lassen Sie mich in den Kommentaren wissen, wenn Sie eine bessere Lösung gefunden haben)

Ich verwende Cocoapods und aus diesem Grund möchte ich nicht den Quellcode der Bibliotheken, die ich ziehe, ändern. Das Problem wird verursacht durch Cocoapods setzt den Wert "Direkte Verwendung von 'isa'" auf "Ja (als Fehler behandeln)", wodurch alle automatisierten Builds fehlschlagen.

Ich habe das Problem, indem sie, diese zu meinen Podfile fixed:

post_install do |installer_representation| 
    installer_representation.project.targets.each do |target| 
     target.build_configurations.each do |config| 
      config.build_settings['CLANG_WARN_DIRECT_OBJC_ISA_USAGE'] = 'YES' 
     end 
    end 
end 

diese Weise wird die direkte Verwendung von ‚isa‘ auf, als Warnung zeigen wird, aber nicht automatisiert verursachen baut zum Scheitern verurteilt.

Aber in arm64 iOS Device Build (mit Xcode 5.1.0) seltsamerweise CLANG_WARN_DIRECT_OBJC_ISA_USAGE = 'YES' Option wird nicht korrekt angewendet (behandeln als Fehler). Wenn Sie erstellen müssen, einschließlich arm64, kann nur die Option CLANG_WARN_DIRECT_OBJC_ISA_USAGE = 'NO' verwendet werden.

+1

danke, das funktioniert. getestet in xcode Version 5.0.2 (5A3005) und Mavericks 19.9.1 – keithics

+0

Leider funktioniert mein Pod Update nicht mit diesem Patch. Es gibt keine Details über den Fehler: 'LoadError - keine solche Datei zu laden ...' Ich arbeite mit Xcode 5.1 und i0S 7.1. Hast du eine Ahnung davon? Danke – Lisarien

+0

Dieser Fehler sagt mir nicht viel. Wenn ich mich richtig erinnere, wurde der Fehler von JSONKit verursacht. Wenn dieser Fehler von einem Pod verursacht wird, sollte dieses Update (ich habe es nicht getestet) funktionieren. Andernfalls sollten Sie es in Ihrem Code beheben können. Konnten Sie es beheben? – bsarrazin

Verwandte Themen