2015-07-03 26 views
11

Swift'i kodlamak için oldukça yeniyim, bu yüzden bu hata basit bir cevap ise lütfen beni affedin!Hata: 'İfade türü daha fazla bağlam olmadan belirsizdir'

"İfade türü daha fazla bağlam olmadan belirsiz" yazan bir hata iletisi alıyorum.

var findTimelineData: PFQuery = PFQuery(className: "Sweets") 
    findTimelineData.findObjectsInBackgroundWithBlock { 
     (objects:[AnyObject]?, error:NSError?) -> Void in 

     if error == nil { 
      for object:PFObject in objects! { // ----This is the error line--- 
       self.timelineData.addObject(object) 
      } 
     } 
    } 

Sorunun ne olduğunu anlıyorum, düzeltmeyi nasıl yapacağımdan emin değilim. Bununla ilgili olarak başka soruları da gördüm, ancak AnyObject dizisi boyunca yineleme hakkında hiçbiri.

Teşekkürler! Sen derleyici yardımcı olabilir

cevap

21

objects bu nasıl bir şey olduğunu biliyorum: Swift kodu

for object in objects as! [PFObject] { 
    self.timelineData.addObject(object) 
} 
+0

Şimdi anladım! Teşekkürler! –

+0

Örneğim zorla açmayı kullanır, dizideki herhangi bir nesne bir PFObject değilse, bunun kilitleneceğini unutmayın. Bunun sizin durumunuz olabileceğini düşünüyorsanız veya herhangi bir şüphe duyuyorsanız, Tom Howard'ın cevabı gibi isteğe bağlı bir ciltleme kullanmanız daha iyi olur. – Moritz

2
if let pfObjects = objects as? [PFObject] 
{ 
    for pfObject in pfObjects 
    { 
     self.timelineData.addObject(pfObject) 
    } 
} 

... ünlem işareti bana heeby mi girmeye ver.

for (i, view) in views { 
} 

Sen enumerated eklemem gerekiyor:

for (i, view) in views.enumerated() { 
} 

Ve şimdi çalışmalıdır

0

bazı kod seven yazıyorsanız.

İlgili konular