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]
}
}
当我在MemeModel
中以这种方式声明detailViewcontroller
时:
var detailmemecontroller = MemeModel()
编译器抱怨如下:
缺少参数' toptext'用于呼叫中的参数。
如果我以这种方式声明memeCollection
,则不会抱怨:
var memeCollection = Memecollection()
我需要做什么?
答案 0 :(得分:0)
MemeCollection
没有必填变量,MemeModel
有4个必填变量topText
,bottomText
originalImage
和memedImage
。因此,如果您在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?
}