gpt4 book ai didi

ios - 如果某种类型在 swift 中传递给函数,则尝试返回 nil

转载 作者:搜寻专家 更新时间:2023-11-01 06:48:19 25 4
gpt4 key购买 nike

HI 与之前的一个问题有关,我把它弄得一团糟,所以重新发布。如果将某种类型的博客文章传递到我的函数中,我需要做的是返回 nil

这是我传入的类实例

class BlogPost {

var type = Int(arc4random_uniform(UInt32(types.count)))
var views : Int?
var author : String
var email : String
var order : Int = 0

init(author : String, email : String, order : Int) {

self.author = author
self.email = email
self.order = order

}

func teaser() -> (authorName : String, numberOfViews : Int) {

author = ""
views = 0

if views == 0 {
println("no one has read your blog yet")
} else {
println("\(author) has \(views)")
}

return(author, views!)
}
}

这是我遇到问题的功能

func randomViews(blog : BlogPost?)  {
var vids = types[2]

if blog?.type == vids {
return nil
} else {
let viewCount : [Int] = [10, 20, 30, 40, 50]

var unsignedArrayCount = UInt32(viewCount.count)
var unsignedRandom = arc4random_uniform(unsignedArrayCount)
var random = unsignedRandom

switch (random) {
case 10:
println("Nil")
case 10, 20 :
println("0")
default:
random
}
}
}

我收到的错误是

 "$T4?? does not conform to protocol '_RawOptionSetType'"

希望这比以前更清楚,希望您能提供帮助。非常感谢

这里没有问题是我的类型数组

let types : [String] = ["technology", "memos", "animals"]

我还没有删除 Int 并更新了 blog 类中的类型

var type = (arc4random_uniform(UInt32(types.count)))

基本上,如果“动物”作为博客类型传入,我需要返回 nil,否则什么也不做,继续。所以只需要知道最好使用哪种返回类型?谢谢

干杯 Rob 好的,这就是我所做的我只是创建了一个单独的函数来访问数组的随机元素

func randType() -> String {

var unsignedArrayCount = UInt32(types.count)
var unsignedrandom = arc4random_uniform(unsignedArrayCount)
var random = Int(unsignedrandom)

return types[random]
}

然后就像你说的不需要返回类型就返回

func randomViews(blog : BlogPost?)  {

var vids = types[2]

if blog?.type == vids {

//println("NIL")
return


} else {

let viewCount : [Int] = [10, 20, 30, 40, 50]

var unsignedArrayCount = UInt32(viewCount.count)
var unsignedRandom = arc4random_uniform(unsignedArrayCount)
var random = unsignedRandom

switch (random) {

case 10:
println("Nil")
case 10, 20 :
println("0")
default:
random

}

}

}

这似乎行得通,所以我现在就开始吧。抱歉拖出帖子,但至少我坚持了下来,没有放弃并让它继续(有点)谢谢

最佳答案

您的 randomViews 没有指定返回类型:

func randomViews(blog : BlogPost?) -> UInt32? {

我假设它是一个 UInt32?,因为这是我在 else 分支中看到的。

此外,else 分支缺少一个 return 语句,我认为它应该是 random。固定函数应如下所示:

func randomViews(blog : BlogPost?) -> UInt32? {
var vids = types[2]

if blog?.type == vids {
return nil
} else {
let viewCount : [Int] = [10, 20, 30, 40, 50]

var unsignedArrayCount = UInt32(viewCount.count)
var unsignedRandom = arc4random_uniform(unsignedArrayCount)
var random = unsignedRandom

switch (random) {

case 10:
println("Nil")
case 10, 20 :
println("0")
default:
random
}

return random
}
}

关于ios - 如果某种类型在 swift 中传递给函数,则尝试返回 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26867177/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com