2016-06-27 9 views
0

Der Code unten gezeigt ist, was ich bereits versucht habe.Was ich erreichen möchte, ist es, alle Fotos von dem Gerät zu holen.Zurzeit werden nur einige geholt.Wie der Code zu ändern um alle Bilder vom Gerät zu laden?So holen Sie alle Fotos aus der Bibliothek

+0

Sie suchen nur auf den ersten Wert im Ergebnis. Warum nicht alle Werte im Ergebnis betrachten? Haben Sie die Zählung überprüft? –

+0

Sie holen Sammlungen auch ab, wenn Sie an Assets interessiert zu sein scheinen. – rickster

+0

Wie kann ich alle Werte abrufen? Entschuldigung, ich bin neu zu diesem –

Antwort

5

für iOS David Antwort Aktualisiert vor 10 & Swift 3.0:

anfordern Erlaubnis vom Gerät Fotos zugreifen:

den folgenden Wert auf Ihre info.plist

Datenschutz hinzufügen - Photo Library Gebrauch Beschreibung

Und eine Zeichenfolge bereitstellen, die dem Benutzer angezeigt wird.

anfordern Alle Bilder:

PHPhotoLibrary.requestAuthorization { (status) in 
     switch status { 
     case .authorized: 
      print("Good to proceed") 
      let fetchOptions = PHFetchOptions() 
      let allPhotos = PHAsset.fetchAssets(with: .image, options: fetchOptions) 
      print("Found \(allPhotos.count) images") 
     case .denied, .restricted: 
      print("Not allowed") 
     case .notDetermined: 
      print("Not determined yet") 
     } 
    } 
+0

Dies funktioniert, aber es wird zum Absturz, wenn Sie nicht hinzufügen "Datenschutz - Photo Library Usage Beschreibung" zu info. plist –

+0

@MrStanev Das ist eigentlich oben in der Antwort unter "Anfrage von dem Gerät für den Zugriff auf Fotos" notiert – CodeBender

+0

@CodeBender Ist es möglich, mit Limit zu holen? Können wir Seitenumbruch machen? – Dipang

0

Alle Fotos sind ziemlich einfach, aber Sie müssen sicherstellen, dass Sie zuerst autorisiert sind. Hier ist ein einfacher Code, um zu demonstrieren:

PHPhotoLibrary.requestAuthorization { (status) in 
     switch status 
     { 
     case .Authorized: 
      print("Good to proceed") 
      let fetchOptions = PHFetchOptions() 
      let allPhotos = PHAsset.fetchAssetsWithMediaType(.Image, options: fetchOptions) 
      print("Found \(allPhotos.count) images") 
     case .Denied, .Restricted: 
      print("Not allowed") 
     case .NotDetermined: 
      print("Not determined yet") 
     } 
    } 

Auf meinem Telefon gibt das 25750 Elemente zurück. Bei einem frischen Simulator sollte dies 5 Bilder ergeben.

+0

was ist der Typ von allPhotos? –

+0

Wenn Sie den Code eingeben und bei gedrückter Ctrl-Taste auf die Funktion fetchAssetsWithMediaType klicken, sehen Sie, dass es sich um ein PHFetchResult-Objekt handelt. https://developer.apple.com/library/ios/documentation/Photos/Reference/PHFetchResult_Class/index.html –