W Xcode 6.3 beta z systemem Swift 1.2 Z pozoru udało mi się pobrać obiekt JSON z interfejsu API, ale debugger twierdzi, że obiekt nie ma właściwości. API jest uruchomiony na localhost i nazywa się tak:Dlaczego Xcode 6.3 beta debugger pokazuje, że Swift NSData ma liczbę bajtów wynoszącą 190, ale nie ma właściwości?
NSURLConnection.sendAsynchronousRequest(request, queue: queue,
completionHandler: completionHandler)
completionHandler
jest zamknięcie z przerwania w nim:
let completionHandler =
{
(response: NSURLResponse!, data: NSData!, error: NSError!) -> Void in
// BREAKPOINT HERE
}
Debuger pokazuje, że w Xcode 6.3 beta z Swift 1.2 dane: NSData! to obiekt ObjectiveC.NSObject o rozmiarze 190 bajtów, ale bez właściwości, co wydaje się zdecydowanie sprzeczne. Po prostu chcę danych JSON, które mam nadzieję, są ukryte gdzieś w tych bajtach. Nie wiem, czy winę za to zajmuje debugger lub kod, który wymaga aktualizacji dla Swift 1.2, mojego zrozumienia rzeczy lub czegoś innego. Po prostu chcę JSON.
post-script
dane JSON był tam cały czas, jak liczba bajtów zasugerował, i coraz to było bardzo proste (używając SwiftyJSON):
let json = JSON(data: data)
Zupełnie co się stało właściwości w debugerze beta Xcode 6.3 pozostaje jednak tajemnicą. Nie dodaję tego jako odpowiedzi na moje własne pytanie, ponieważ podczas gdy działa, niekoniecznie musi to być odpowiedź. Jestem zbyt nowy, by Swift wiedział, jaka może być prawdziwa odpowiedź, a nawet jeśli taka istnieje.
Jaki jest faktyczny problem? Jakie wyniki oczekujesz? Czy wersja 6.3 nie działa zgodnie z przeznaczeniem? Jeśli tak, czy możemy usunąć wszystkie rzeczy dotyczące Xcode 6.2 i sprawić, by pytanie to było bardziej skupione, z lepszym wyjaśnieniem, na czym polega problem? – nhgrif
Edytowane. Możliwe jest wskazanie słabości bez uzyskania [pasywnej-] agresywnej ngii, wszyscy staramy się po prostu tutaj dogadać. MJB. –
Nie jestem agresywny. Wskazuję na obawy. Twoje pytanie jest niejasne. Głosowałem, aby to zamknąć. Twoje pytanie dotyczy wersji Xcode 6.3, prawda? Więc wyciąć wszystkie rzeczy Xcode 6.2. Jest to istotne tylko o tyle, o ile powie: "To działało w wersji 6.2, ale teraz nie działa w wersji 6.3". Następnie wyjaśnij dokładniej swój dokładny problem. Czy obiekt jest po prostu niewłaściwie zinterpretowany przez debuggera (ale nadal możesz go poprawnie używać)? Czy rzeczywiście otrzymujesz niewłaściwy typ obiektu zwróconego przez metodę? – nhgrif