swift - 调用中的参数缺少参数 'toptext'

标签 swift struct

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 时:

var detailmemecontroller = MemeModel()

编译器提示以下内容:

missing argument 'toptext' for paramenter in call.

如果我这样声明一个memeCollection,就不会提示:

var memeCollection = Memecollection()

我需要做什么?

https://github.com/zetaosun/Udacity_meme

最佳答案

MemeCollection 没有强制变量,MemeModel 有 4 个强制变量 topTextbottomText originalImagememedImage。因此,如果您在 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?
}

关于swift - 调用中的参数缺少参数 'toptext',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44393771/

相关文章:

swift - 获取协议(protocol)的真实类型以与存储在变量中的类型进行比较

c 制作一个 const 结构数组的副本

swift - 我可以为我的 NSCoding 类覆盖 swift 每模块命名空间吗? (我需要 Module1.MyCodedClass == Module2.MyCodedClass)

swift - 我怎样才能等到下载完成?

swift - Cocoa 窗口在 macOS Sierra 上不显示

c - 在 C 中有多个定界符的 scanf

c++ - Struct Char 数组中的奇怪行为

c#如何将结构数组转换为数组结构

C# P/Invoke结构问题

ios - 类型 'StorageReference' 的值没有成员 'data'