Ich habe eine App, die eine einzigartige Fotogalerie für jedes Ticket in meiner App erstellt. Ich muss herausfinden, wie ich diese Galerie durchlaufen kann, damit ich die Bilder einzeln auf den Server hochladen kann. Ich habe diese Tutorials auf youtube verfolgt. (Video) Ich benutze derzeit Swift als meine Sprache. Mein oberstes Ziel wäre es, so etwas wie den folgenden Pseudo-Code zu haben.So durchlaufen Sie eine Fotogalerie in swift mit Fotorahmen
//I need the following for loop example
for photo in gallery
{
uploadToServer(photo)
}
//this function works already
func uploadToServer(photo:UIImage)
{
callRest
postPhoto
}
hier ist mein Code so weit kann nicht herausfinden, wie man durchschleift. sie obwohl.
let fetchOptions = PHFetchOptions()
fetchOptions.predicate = NSPredicate(format: "title = %@", self.albumName)?
let collection:PHFetchResult = PHAssetCollection.fetchAssetCollectionsWithType(.Album, subtype: .Any, options: fetchOptions)
if let first_Obj:AnyObject = collection.firstObject{
//found the album
self.assetCollection = collection.firstObject as PHAssetCollection
self.albumFound = true
}
else { albumFound = false }
var i = collection.count
self.photoAssets = PHAsset.fetchAssetsInAssetCollection(self.assetCollection, options: nil)
self.photoAssets.enumerateObjectsUsingBlock{(object: AnyObject!,
count: Int,
stop: UnsafeMutablePointer<ObjCBool>) in
if object is PHAsset{
let asset = object as PHAsset
println("Inside If object is PHAsset, This is number 1")
let imageSize = CGSize(width: asset.pixelWidth,
height: asset.pixelHeight)
/* For faster performance, and maybe degraded image */
let options = PHImageRequestOptions()
options.deliveryMode = .FastFormat
imageManager.requestImageForAsset(asset,
targetSize: imageSize,
contentMode: .AspectFill,
options: options,
resultHandler: {
(image, info)->Void in
self.photo = image
var defaults: NSUserDefaults = NSUserDefaults.standardUserDefaults()
var server = defaults.objectForKey("imageServer") as String!
var error: NSError? = nil
var imageData = UIImageJPEGRepresentation(self.photo, 90)
var url = NSURL(string: server)
var request = NSMutableURLRequest(URL: url!)
request.HTTPMethod = "POST"
//request.setValue("multipart/form-data", forHTTPHeaderField: "Content-Type")
request.HTTPBody = imageData
var response: NSURLResponse? = nil
let reply = NSURLConnection.sendSynchronousRequest(request, returningResponse:&response, error:&error)
let results = NSString(data:reply!, encoding:NSUTF8StringEncoding)
println("API Response: \(results)")
/*
/* The image is now available to us */
self.sendPhotos(image)
println("enum for image, This is number 2")*/
})
}
}
rechts weiter gehen. Was ist der schwierige Teil? – matt
Ich habe Probleme, was zu durchlaufen, ich bin neu zu schnell und iOS-Entwicklung. Ich habe versucht, meine PHAssetCollection durchzulaufen, lassen Sie mich nicht, also habe ich versucht, meine PHFetchResults gleiche Sache zu durchlaufen. Ich bin mir nicht sicher, wie das Fotorahmen funktioniert. – Spikehockey75
Haben Sie das WWDC-Video über das Photos-Framework angeschaut? Es ist ziemlich einfach. – matt