Nella mia app iOS, sto lavorando su un thread in background (usando performSelectorInBackground
). In questa discussione, io sto usando NSJSONSerialization e dei suoi metodi di classe ad analizzare una stringa JSON:Metodi di classe e sicurezza dei thread (NSJSONSerialization)
self.json = [NSJSONSerialization JSONObjectWithData:self.data options:0 error:nil];
È questo il metodo di classe (JSONObjectWithData
) thread-safe? Posso esserne sicuro? Dove è scritto nella documentazione?
So che i metodi di istanza sono in genere non thread-safe a meno che i documenti non lo siano. Posso dire in generale che i metodi di classe sono thread-safe, se non diversamente specificato?
Il modo migliore è quello di rendere il funzionamento in parallelo su [NSJSONSerialization JSONObjectWithData:] chiamare, e vedere se avete problema rientranza. Se nessuno ti dice che è thread-safe, allora non è thread-safe;) –
Sfortunatamente sembra che il documento che descrive la sicurezza del thread non sia stato aggiornato per mostrare 'NSJSONSerialization'. http://developer.apple.com/library/ios/#Documentation/Cocoa/Conceptual/Multithreading/ThreadSafetySummary/ThreadSafetySummary.html –
Vuoi usare self.json, se lo fai thread-safe allora funzionerà? – Exploring