2016-05-13 10 views
0

Ich entwickle eine iOS App, die Videos aus der Fotogalerie abruft und es funktioniert immer. Getestet habe ich nur die App auf einem anderen Gerät (dies ist nicht der erste, auf dem ich testen) und es stürzt ab, während ich die abgerufenen Daten verwenden, und ich verstehe nicht, warum ...NSRangeException mit PHFetchResult

Hier ist mein Code:

self.videosAssets = PHAsset.fetchAssetsWithMediaType(.Video, options: nil) 

if self.videosAssets != nil { 
    for i in 0..<self.videosAssets!.count { 
     if let video = self.videosAssets!.objectAtIndex(i) as? PHAsset { 
      self.videos.append(Video(asset: video)) 
     } 
    } 
} 

es holt 221 Videos, aber es stürzt ab, wenn i == 59.

Hier ist der Fehler erhalte ich:

Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArray0 objectAtIndex:]: index 0 beyond bounds for empty NSArray' 
+1

Nein, es stürzt nicht auf 'i == 59', es bei Index stürzt ab 0. Sind Sie sicher, dass der Code, ist verursacht tatsächlich den Fehler/Absturz? – luk2302

+0

Ich erkannte, dass ich danach den Video-Konstruktor nicht getestet habe ... Ich denke, dass die App hier abstürzt. Ich werde es am Montag testen –

Antwort

0
self.videosAssets = PHAsset.fetchAssetsWithMediaType(.Video, options: nil) 

if let videoAssets = self.videosAssets { 
    videoAssets.forEach { video in 
     if video as? PHAsset { self.videos.append(Video(asset: video)) } 
    } 
} 
0

Nach dem Testen des Video-Konstruktors war es das Problem. Aus irgendeinem Grund, wenn ich let resources = PHAssetResource.assetResourcesForAsset(asset) rufe, gibt es mir ein leeres Array zurück und hier stürzte die App ab.

Sorry für diese nutzlose Post, vielleicht wird es helfen, jemand ...

Verwandte Themen