简体   繁体   English

Swift结构错误

[英]Swift Struct Error

I'm trying to created an fun facts app. 我正在尝试创建一个有趣的事实应用程序。 It displays a random string from an array every time, then that fact is deleted from the array. 每次都会从数组中显示一个随机字符串,然后将该事实从数组中删除。 For me code, when the app is first launched it gets new array of facts and it saves the data when the app is closed and uses the array from the previous launch every time after the initial launch. 对于我来说,代码在首次启动应用程序时会获取新的事实数组,并在应用程序关闭时保存数据,并在首次启动后每次都使用前一次启动时的数组。 My problem is I get an error "Missing argument for parameter #1 in call" on the fourth last line of my code. 我的问题是我的代码的第四行出现错误“调用中参数#1缺少参数”。 Please help me, I am fairly new to programming. 请帮助我,我是编程的新手。

import Foundation
let userDefaults = NSUserDefaults.standardUserDefaults()

func isAppAlreadyLaunchedOnce()->Bool{
    let defaults = NSUserDefaults.standardUserDefaults()

    if let isAppAlreadyLaunchedOnce = defaults.stringForKey("isAppAlreadyLaunchedOnce"){
        println("App already launched")
        return true
    }
    else{
        defaults.setBool(true, forKey: "isAppAlreadyLaunchedOnce")
        println("App launched first time")
        return false
    }
}

struct newFactBook {


    let factsArray = [
        "Ants stretch when they wake up in the morning.",
        "Ostriches can run faster than horses.",
        "Olympic gold medals are actually made mostly of silver.",
        "You are born with 300 bones; by the time you are an adult you will have 206.",
        "It takes about 8 minutes for light from the Sun to reach Earth.",
        "Some bamboo plants can grow almost a meter in just one day.",
        "The state of Florida is bigger than England.",
        "Some penguins can leap 2-3 meters out of the water.",
        "On average, it takes 66 days to form a new habit.",
        "Mammoths still walked the earth when the Great Pyramid was being built."]

}

    var checkLaunch = isAppAlreadyLaunchedOnce()
    var oldFunFactsArray = []

    if(checkLaunch == false){
    oldFunFactsArray = newFactBook().factsArray
    }

    else if (checkLaunch == true){
    oldFunFactsArray = userDefaults.objectForKey("key") as! NSArray
    }



struct returnRandomFacts {
    func randomFacts() -> (String, Int){
        var unsignedArrayCount = UInt32(oldFunFactsArray.count)
        var unsignedRandomNumber = arc4random_uniform(unsignedArrayCount)
        var randomNumber = Int(unsignedRandomNumber)
        return (oldFunFactsArray[randomNumber] as! String, randomNumber)

    }
}

returnRandomFacts.randomFacts().1 // error right here
println(oldFunFactsArray)
userDefaults.setObject(oldFunFactsArray, forKey:"key")
userDefaults.synchronize()

you need to initialize returnRandomFacts . 您需要初始化returnRandomFacts Try the following returnRandomFacts().randomFacts().1 尝试以下returnRandomFacts().randomFacts().1

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM