2015-04-04 15 views
19

Xcode 6.3 beta sürümünde çalışan Swift 1.2 Bir API'den bir JSON nesnesini başarıyla aldım, ancak hata ayıklayıcı nesnenin hiçbir özelliğinin olmadığını iddia ediyor.Neden Xcode 6.3 beta hata ayıklayıcısı, Swift NSData'nın 190 baytlık bir sayıya sahip olduğunu, ancak özelliklerin olmadığını gösteriyor?

NSURLConnection.sendAsynchronousRequest(request, queue: queue, 
    completionHandler: completionHandler) 

completionHandler içinde bir kesme bir kapaktır: API localhost çalışıyorsa ve böyle adlandırılır

let completionHandler = 
{ 
    (response: NSURLResponse!, data: NSData!, error: NSError!) -> Void in 
    // BREAKPOINT HERE 
} 

ayıklayıcı gösterir Swift 1.2 Xcode 6.3 beta veriler: NSData!, 190 baytlık bir ObjectiveC.NSObject nesnesidir ancak hiçbir özellik içermeyen, birbiriyle çelişkili görünen bir yöntemdir. Ben sadece bu baytlarda bir yerlerde gizli olmasını umduğum JSON verilerini istiyorum. Swift 1.2 için güncellenmesi gereken hata ayıklayıcının mı yoksa kodun mu olduğuyla ilgili bir şey mi, yoksa başka bir şeyle mi ilgili olduğunu mu bilmiyorum. Ben sadece JSON'u istiyorum.

Sonrası komut

JSON veri bayt sayısı önerildiği gibi, başından beri oradaydı ve şekilde alma (SwiftyJSON kullanarak) çok basitti:

let json = JSON(data: data) 

Oldukça ne oldu Xcode 6.3 beta hata ayıklayıcısındaki özellikler yine de bir gizem olarak kalır. Ben kendi soruma bir cevap olarak eklemiyorum, çünkü çalışır iken cevabı olmalıdır. Gerçek cevabın ne olabileceğini ya da bir tane bile olsa bilmek için Swift'e çok yeni geldim.

+4

Asıl sorun nedir? Hangi sonuçları bekliyorsunuz? 6.3 versiyonu amaçlandığı gibi çalışmıyor mu? Eğer öyleyse, Xcode 6.2 ile ilgili tüm şeyleri kaldırabilir ve bu soruyu, sorunun gerçekte ne olduğu hakkında daha iyi bir açıklamaya odaklayabilir miyiz? – nhgrif

+0

Düzenlendi. Zayıf yönleri, [pasif] agresif nhgrif almadan elde etmek mümkündür, hepimiz burada kalmaya çalışıyoruz. MJB. –

+3

Pasif agresif olmam. Endişeleri işaret ediyorum. Sorunuz açık değil. Onu kapatmak için oy verdim. Sorunuz Xcode 6.3 sürümü hakkında, doğru mu? Yani tüm Xcode 6.2 şeylerini kesin. Sadece "Bu, 6.2'de çalıştı, ancak şimdi 6.3'de çalışmıyor" demek kadar alakalı. Ardından, kesin sorununuzu netleştirin. Nesne basitçe hata ayıklayıcı tarafından yanlış bir şekilde giriliyor mu (ama yine de doğru şekilde kullanabiliyorsunuz)? Ya da aslında yöntemden döndürülen yanlış nesne türünü mi alıyorsunuz? – nhgrif

cevap

2

NSData, bir dizeye dönüştürülmeden veya JSON olarak ayrıştırılmadan önce, ham veri baytlarının bir kapsüllenmesidir. let value = jsonDictionary["key"]

Ben çok yardımcı umut: Bu veri ne içerdiğini görmek istiyorsanız

, o zaman NSJSONSerialization (let jsonDictionary = NSJSONSerialization.JSONObjectWithData(data, options: nil, error: nil)) kullanabilir

ve ardından da diğerleri gibi sözlüğü oku.