2016-08-22 3 views
1

このSwift関数で作成されたオブジェクトはどこに移動しますか?私はGitHubの上で、この支店で探しています

https://gist.github.com/westerlund/eae8ec71cdac88be7c3a

これはスウィフトでUIImagesからGIFを作成するために使用される、関数である。

func createGIF(with images: [UIImage], loopCount: Int = 0, frameDelay: Double, callback: (data: NSData?, error: NSError?) ->()) { 
    let fileProperties = [kCGImagePropertyGIFDictionary as String: [kCGImagePropertyGIFLoopCount as String: loopCount]] 
    let frameProperties = [kCGImagePropertyGIFDictionary as String: [kCGImagePropertyGIFDelayTime as String: frameDelay]] 

    let documentsDirectory = NSTemporaryDirectory() 
    let url = NSURL(fileURLWithPath: documentsDirectory)?.URLByAppendingPathComponent("animated.gif") 

    if let url = url { 
     let destination = CGImageDestinationCreateWithURL(url, kUTTypeGIF, UInt(images.count), nil) 
     CGImageDestinationSetProperties(destination, fileProperties) 

     for i in 0..<images.count { 
      CGImageDestinationAddImage(destination, images[i].CGImage, frameProperties) 
     } 

     if CGImageDestinationFinalize(destination) { 
      callback(data: NSData(contentsOfURL: url), error: nil) 
     } else { 
      callback(data: nil, error: NSError()) 
     } 
    } else { 
     callback(data: nil, error: NSError()) 
    } 
} 

私は私が何であるかを理解することを確認していません行っている。関数は、使用するオブジェクトを返すべきではありませんか?作成されたGIFはどこに行きますか?それは私のコードの他の部分で、例えばUIImageView、またはUIImageに入れるために使用することは可能ですか?

あなたは

+1

コールバックには?この行 'コールバック(データ:NSData(contentsOfURL:url)、エラー:nil)' –

+0

そこから、私はNSDataを使ってUIImageを作成する必要がありますか? –

+1

右のように聞こえますが、データがゼロでエラーがない場合に気をつけてください。 –

答えて

1

結果GIFは、あなたがあなたのそれからNSImageを作成することができますcallbackNSDataとして渡されるありがとうございます。エラー状態で同じコールバックが使用されていることに注意してください。datanilで、errorはそうではありません。

+0

申し訳ありませんが痛みはありますが、NSDataからUIImageを作成する方法を理解できません。コールバックによって作成されたデータを使用しようとすると型エラーが発生するので、UIImageとデータに関連するすべての関数は "データ"型を使用します。つまり、NSDataと同等ではありません... –

+1

NSDataをとるctorがありますページのSwiftに切り替えてください):https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIImage_Class/#//apple_ref/occ/instm/UIImage/initWithData: –

関連する問題