2016-04-26 1 views
0

私はIOSアプリケーションを迅速に作成し始めました。すべてのチュートリアルでは、画像ビューをView Controllerにドラッグすると、自動的にUIImageViewと呼ばれ、画面全体が塗りつぶされます。イメージビューVS UIImage Xcodeプレースメントを表示

画像ビューをドラッグすると、画像ビューに名前が付けられ、画面全体が決して満たされません。誰かが私のxcodeを自分たちのように振る舞う方法を知っていますか?問題の

チュートリアル:https://www.youtube.com/watch?v=4eP_xW-Zz34

MORE INFO(必要はありません):次に

私はコードが、私はそれを行うとき、彼らはやるだけの方法をコンパイルすることはありません(7月2015ishで行われた)のチュートリアルに従うようそれ(マイナスUIImage対イメージ)。常にいくつかのことがあります。

iOSは、これらのチュートリアルをすべて廃止したswift/xcodeの新しいバージョンに切り替えるか、コードを動作させるために変更する必要のあるコード設定があります。

より具体的なコードの違いや新興エラー

彼らのコード:私はそのコードから取得

import UIKit 

class ViewController: UIViewController { 

    @IBOutlet weak var photoImageView: UIImageView! 

    // Create a place to render the filtered image 
    let context = CIContext(options: nil) 

    @IBAction func applyFilter(sender: AnyObject) { 

     // Create an image to filter 
     let inputImage = CIImage(image: photoImageView.image) 

     // Create a random color to pass to a filter 
     let randomColor = [kCIInputAngleKey: (Double(arc4random_uniform(314))/100)] 

     // Apply a filter to the image 
     let filteredImage = inputImage.imageByApplyingFilter("CIHueAdjust", withInputParameters: randomColor) 

     // Render the filtered image 
     let renderedImage = context.createCGImage(filteredImage, fromRect: filteredImage.extent()) 

     // Reflect the change back in the interface 
     photoImageView.image = UIImage(CGImage: renderedImage) 

    } 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view, typically from a nib. 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 

} 

エラー:

let inputImage = CIImage(image: photoImageView.image) 

がエラーを与える:Value of optional type 'UIImage?' not unwrapped; did you mean to use '!' or '?'?

理由私はこのコードをインクルードしています。なぜなら、Image Viewでxcodeの動作の違いに結びついていると思うからです。そして、これらの問題の原因を特定するのに役立つかもしれません。

答えて

0

事はphotoImageView.imageです.Ulmageを返します.UlmageはSwiftのオプション変数で、現在のコードでXcodeはその警告を鳴らします。あなたはこれらのいずれかを行うことができ :

フォースキャスト:

let inputImage = CIImage(image: photoImageView.image!) 

か前にチェックするいくつかの保証を置く:

guard let img = photoImageView.image else { return } 
let inputImage = CIImage(image: img) 

注:Xcodeの7、スウィフト*

2.
+0

のXcodeはありませんが修正をお勧めしますが、そのコードエラーは本当に最初の質問に追加された2番目のポイントであり、私のxcodeは異なっています。 – Rorschach

+0

あなたのxCodeが命令のバージョンと異なっていますか?ご存じのように、Swiftコンパイラはまだ進化しています。古いコンパイラでは良いコードですが、新しいコンパイラではうまくいきません。 –

関連する問題