gpt4 book ai didi

objective-c - 多种类型的 Swift 数组

转载 作者:可可西里 更新时间:2023-11-01 01:06:52 25 4
gpt4 key购买 nike

我正在努力将一个 iOS Obj-C 项目一次转换为一个类的 Swift。一个 Obj-C 类涉及创建一个 NSArray,其中偶数元素描述 NSStrings 和奇数元素 NSNumbers。回想起来这不是一个伟大的设计,但完全有效并且它完成了工作。我已将其转换为 Swift:

let coins = ["1p", 0.01 , "2p" , 0.02 , "5p" , 0.05 , "10p" , 0.10 , "20p" , 0.20 , "50p" , 0.50 , "99p" , 0.99 ,  "£1" , 1.00 ,  "£2" , 2.00 , "£5" , 5.00 , "£9.99" , 9.99 , "£10" , 10.00 , "£20" , 20.00]

我确实意识到 Swift 在一维数组中强制执行单一类型,因此我们不会将多种类型的数组作为灵活类型的数组来讨论 - 我希望它会推断出 AnyObject。

不过我从来没有找到答案,因为这行代码似乎是 Xcode killer 。在我的整个项目中,它会导致索引挂起, swift 变得无响应并最终耗尽所有系统内存。即使将这一行代码粘贴到添加到空白单 View 应用程序的 UIView 子类的初始化中,也会导致 Xcode 挂起尝试以类似的方式构建(我很好奇其他人是否有相同的经验)。

考虑到我在这里尝试的是可编译代码,是否有任何合法性。如果是这样,我是不是偶然发现了一个 Swift 错误,或者可能没有做一些重要的事情来让它工作。显然,我可以找到一种更好的方法来做我想做的事,尤其是在 Swift 中,但我不认为多种类型的数组在 Obj-C 中很少见,因此不值得进一步理解。

最佳答案

看起来你在 Xcode/Swift 中遇到了一个错误 Array<AnyObject>和文字。我得到相同的结果。我添加的元素越多,情况似乎呈指数级恶化(我的 RAM 在 ~6 个元素后变满)。作为一种解决方法,创建一个可变数组(使用 var 而不是 let )并逐个添加元素似乎效果很好。毫无疑问是 Janky,但它不会使 Xcode 崩溃。

var coins: Array<AnyObject> = []
coins += "1p"
coins += 0.01
coins += "2p"
coins += 0.02
coins += "5p"
coins += 0.05
coins += "10p"
coins += 0.10
coins += "20p"
coins += 0.20
coins += "50p"
coins += 0.50
coins += "99p"
coins += 0.99
coins += "£1"
coins += 1.00
coins += "£2"
coins += 2.00
coins += "£5"
coins += 5.00
coins += "£9.99"
coins += 9.99
coins += "£10"
coins += 10.00
coins += "£20"
coins += 20.00

关于objective-c - 多种类型的 Swift 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24212529/

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