Implement Regift Methods

import Foundation
import UIKit
import MobileCoreServices

// Regift constants
let frameCount = 16
let delayTime: Float = 0.2
let loopCount = 0 // 0 means loop forever

extension UIViewController: UIImagePickerDelegate, UINavigationControllerDelegate {
	
	@IBAction func launchVideoCamera(sender: AnyObject){
		let recordVideoController = UIImagePickerController()
		recordVideoController.sourceType = UIImagePickerControllerSourceType.launchVideoCamera
		recordVideoController.mediaTypes = [kUTTypeMovie as String]
		recordVideoController.allowsEditing = false
		recordVideoController.delegate = self

		presentViewController(recordVideoController, animated: true, completion: nil)
	}
	public func imagePickereController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]){
		let mediaType = info[UIImagePickerControllerMediaType] as! String

		if mediaType == kUTTypeMovie as String {
			let videoURL = info[UIImagePickerControllerMediaURL] as! NSURL
			dismissViewControllerAnimated(true, completion: nil)
			UISaveVideoAtPathToSavedPhotosAlbum(videoURL.path!, nil, nil, nil)
		}
	}

	public func imagePickerControllerDidCancel(picker: UIImagePickerController){
		dismissViewControllerAnimated(true, completion: nil)
	}

	func convertVideoToGIF(videoURL: NSURL){
		let regift = Regift(sourceFileURL: videoURL, frameCount: frameCount, delayTime: delayTime, loopCount: loopCount)
	}
}
#import <UIKit/UIKit.h>
#import "Gif.h"

@interface GifEditorViewController : UIViewController<UITextFiledDelegate>

@property (nonatomic) Gif *gif;
@property (weak, nonatomic) IBOutlet UIImageView *gifImageView;

@end

Rewriting the Gif Class

@interface Gif : NSObject <NSCoding>

@property (nonatomic) NSURL *url;
@property (nonatomic) NSString *caption;
@property (nonatomic) UIImage *gifImage;
@property (nonatomic) NSURL *videoURL;
@property (nonatomic) NSData *gifData;

-(instancetype)initWithGifUrl: (NSURL*)url videoURL:(NSURL*)videoURL caption:(NSString*)caption;
-(instancetype)initWithName:(NSString*)name;
@end