2014-06-06 7 views
7

Come faccio a correggere l'avviso "la sintesi automatica delle proprietà non si sintetizza perché è readwrite ma sarà sintetizzata in sola lettura tramite un'altra proprietà" per le proprietà streamStatus e streamError che sto ottenendo con l'ultimo AFNetworking sulla Xcode 6 beta?Errore di sintesi automatica in AFURLRequestSerialization con Xcode 6

https://github.com/AFNetworking/AFNetworking/blob/master/AFNetworking/AFURLRequestSerialization.m#L733

Ecco la linea di relavent in linea AFURLRequestSerialization.m 733 e 734:

@interface AFMultipartBodyStream() <NSCopying> 
@property (readwrite, nonatomic, assign) NSStreamStatus streamStatus; 
@property (readwrite, nonatomic, strong) NSError *streamError; 

risposta

8

Sembra che la versione di clang che viene fornito con Xcode 6 beta non autorizza a riscrivere immobili a un'estensione che non è un'estensione diretta della classe originale che contiene quelle proprietà.

rimozione:

@property (readwrite, nonatomic, assign) NSStreamStatus streamStatus; 
@property (readwrite, nonatomic, strong) NSError *streamError; 

e sostituendola con:

@interface NSStream() 
@property (readwrite) NSStreamStatus streamStatus; 
@property (readwrite, copy) NSError *streamError; 
@end 

risolve il problema.

Ho aperto un pull request nel repository AFNetworking per risolvere questo.

Spero che questo aiuti.

+0

Grazie per questo, risolve il problema –

2

Ho impostato il mio Xcode 6 per lavorare con lo sviluppo di app iOS 7 e ho risolto un problema di autosintesi che stavo facendo con AFNetworking. Ho modificato i miei strumenti di compilazione in 5.1 e ho spostato l'SDK 7.1 nella directory Developer/SDKs in Xcode 6. La questione (ovviamente) è che ho bisogno di cambiare gli strumenti di compilazione quando si lavora su iOS 8 esplicitamente, ma è molto meglio di passare avanti e indietro tra il 5 e 6.

Modifica costruire Strumenti

  1. Aperto Xcode Preferenze (cmd +,)
  2. Naviga a scheda 'Luoghi'
  3. Change 'riga di comando Strumenti' da Xcode 6.0 a Xcode 5.1.1

Come iOS 7 SDK

  1. Apri terminale
  2. Run cp /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk /Applications/Xcode6-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk

  3. Restart Xcode

Si dovrebbe ora essere in grado di impostare iOS 7.1 come base SDK

Questo dovrebbe risolvere il problema a breve termine fino a quando tutte queste librerie non saranno aggiornate per iOS 8.0 e i nuovi strumenti di compilazione.

+0

cosa fanno in realtà gli strumenti della riga di comando? Capisci che questa soluzione è troppo brutta? – Gargo