2017-06-06 86 views
0
import UIKit 
import Foundation 

struct MemeModel{ 
    var topText:String 
    var bottomText:String 
    var originalImage:UIImage! 
    var memedImage:UIImage 
    } 

struct MemeCollection{ 

    func getMemeStorage() ->AppDelegate{ 
     let appDelegate = UIApplication.shared.delegate 
     return appDelegate as!AppDelegate 
    } 

    //get memeModel count number 
    func count() ->Int{ 
     return getMemeStorage().memes.count 
    } 

    //append meme 
    func addMeme(Meme meme:MemeModel){ 
     print("meme added") 
     getMemeStorage().memes.append(meme) 
     print(getMemeStorage().memes.count) 
    } 

    //getMeme 
    func getMeme(index:Int)->MemeModel{ 
     return getMemeStorage().memes[index] 
    } 

} 

当我以这种方式detailViewcontroller声明MemeModel缺少参数 '的TopText' 的参数调用

var detailmemecontroller = MemeModel() 

编译器具有以下抱怨:

缺少参数“的TopText '用于调用参数。

没有抱怨,如果我宣布一个memeCollection这样:

var memeCollection = Memecollection() 

什么我需要做什么?

https://github.com/zetaosun/Udacity_meme

回答

0

MemeCollection没有强制变量和MemeModel有4个强制性变量topTextbottomTextoriginalImagememedImage。因此,如果您在MemeCollection中添加任何必需变量,那么您也会在那里得到相同的错误。

修复MemeModel的错误。你有两个选择。

选项1要么通过所有这样的强制性参数。

var detailmemecontroller = MemeModel(topText: "", bottomText: "", originalImage: UIImage.init(), memedImage: UIImage.init()) 

选项2使所有变量选配。

struct MemeModel{ 
    var topText:String? 
    var bottomText:String? 
    var originalImage:UIImage? 
    var memedImage:UIImage? 
} 
+0

我宣布在该方式MemeCollection:VAR memeCollection = MemeCollecion(),没有错误,为什么呢? – zetao123

+0

查看更新的答案我已添加更多信息// – Bilal