gpt4 book ai didi

ios - UICollectionReusableView - 函数中缺少返回值

转载 作者:IT王子 更新时间:2023-10-29 05:20:14 26 4
gpt4 key购买 nike

我在考虑 UICollectionView 的 header 时遇到了一个奇怪的问题。

我基本上使用了以下代码: http://www.raywenderlich.com/78551/beginning-ios-collection-views-swift-part-2

func collectionView(collectionView: UICollectionView,
viewForSupplementaryElementOfKind kind: String,
atIndexPath indexPath: NSIndexPath) -> UICollectionReusableView {

let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "dd.MM.yyyy' - 'HH:mm'"
//1
switch kind {
//2
case UICollectionElementKindSectionHeader:
//3
let h =
collectionView.dequeueReusableSupplementaryViewOfKind(kind, withReuseIdentifier: "eventHeaderView", forIndexPath: indexPath) as eventHeader


h.eventFirstline.text = "First Line"
h.eventSecondline.text = thisEvent.eventName

h.eventDate.text = dateFormatter.stringFromDate(thisEvent.startDate)

h.eventDescription.text = thisEvent.shortDescription

return h
default:
//4
assert(false, "Unexpected element kind")
}
}

当立即部署到模拟器或真实设备时,所有这些都工作得很好,但奇怪的是,当我想构建一个用于测试目的的 Ad-Hoc 包时,它告诉我

Missing return in a function expected to return 'UICollectionReusableView'

到目前为止还不错,在 switch-case 之外没有任何东西,所以它什么也不会返回 - 但为什么只有当我尝试构建一个包时它才没有给出任何关于“热部署”的警告?

最佳答案

assert() 仅在调试配置中进行评估。当你 build 存档然后代码在发布配置中编译(通过优化)并且条件被简单地忽略(假设为 true)。因此编译器提示缺少返回值。

你可以使用

fatalError("Unexpected element kind")

相反。 fatalError() 总是被评估并被标记使用 @noreturn(在 Swift 3 中返回类型 Never)以便编译器知道它不会返回给调用者。

另见 Swift - fatalError with Switch Statements .

关于ios - UICollectionReusableView - 函数中缺少返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29149040/

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