草庐IT

swift - Swift Dictionary 下标如何消除 Int 键和索引的歧义?

目前我正在研究一种数据结构,旨在唯一地存储存储键值对并按键对它们进行排序。本质上它是一个排序的字典,因此我正在寻求尽可能多地保留Swift的Collection和Dictionary语义。在文档和Swift源代码中(尽我所能找到的),字典有两个下标。一个是最常用的subscriptbykey(Githubsource):extensionDictionary{...publicsubscript(key:Key)->Value?{@inline(__always)get{return_variantBuffer.maybeGet(key)}set(newValue){ifletx=ne

for-loop - 是否可以在 Int swift 处于特定范围内时执行 for 循环?

当Int在swift中的某个范围内时,是否可以执行常规的for循环?这就是我想要实现的目标:funcsomeFunc(varplusOrMinus:Int){forvari:Int=0;i==-8...8;i+=plusOrMinus{}}或:funcsomeFunc(varplusOrMinus:Int){forvari:Int=0;iin-8...8;i+=plusOrMinus{}}或:funcsomeFunc(varplusOrMinus:Int){forvari:Int=0;i==;i+=plusOrMinus{}}这些都不起作用。希望你能理解这个问题并能帮助我。:)

swift - 在 Swift 中将以毫秒为单位的 NSDate 时间转换为 Int32 和 Int64

我有一个SwiftNSDate:vardate:NSDate()并希望获得自1970年以来的毫秒数作为Int32:lettime:Int32=Int32(date.timeIntervalSince1970*1000)lettime:Int64=Int64(date.timeIntervalSince1970*1000)这是正确的做法吗? 最佳答案 请不要Int32。Int32的值最大为2^31。那是毫秒,所以大约200万秒。那还不到一个月。您的代码在1970年2月之前停止工作。 关于s

swift - 二元运算符 += 不能应用于两个 Int 操作数

我正在创建一个简单的结构。structExpenses{vartotalExpenses:Int=0funcaddExpense(expense:Int){totalExpenses+=expense}}它在行首产生错误totalExpenses+=expense错误信息是binaryoperator+=cannotbeappliedtotwoIntoperands.为什么我会收到错误消息以及如何解决此问题? 最佳答案 您需要指定addExpense是一个mutating函数,如下所示:structExpenses{vartotal

ios - NSLayoutConstraint 并分配一个 int 变量

我觉得这可能是一个非常简单的问题,因为我刚刚开始使用Swift,但对这种行为有点困惑。我有一个如下所示的NSLayoutConstraint:letverticalConstraint=NSLayoutConstraint(item:newView,attribute:NSLayoutAttribute.CenterY,relatedBy:NSLayoutRelation.Equal,toItem:view,attribute:NSLayoutAttribute.CenterY,multiplier:1,constant:0)并且工作正常。当我将其更改为classViewControl

swift - 如何将 Range<Int> 转换为 Set<Int>?

我想转换一个Range的Int到Set像这样[0..->Set[1,2,3..count]. 最佳答案 一个(可数)范围是一个序列,并且Set有一个初始值设定项publicinit(_sequence:Source)它允许直接从一个序列创建一个集合:letcount=10letrange=0..letset=Set(range)//Set或者只是letcount=10letset=Set(0..或者letset=Set(0..请注意,还有IndexSet是专用类型管理(非负)整数值集:letindexSet=IndexSet(0..

ios - Swift 3 - 如何将 Int32 的内存转换为四个字符

我想将Int32转换为由四个C风格的1字节宽字符组成的字符串(可能与this密切相关,但在Swift3中).这样做的用途是,CoreAudio的许多API函数返回一个OSStatus(实际上是一个Int32),它通常可以解释为由四个C-组成的字符串样式字符。funinterpretAsString(possibleMsg:Int32)->String{//Blackbox} 最佳答案 实际上“四字符代码”通常是无符号32位值:publictypealiasFourCharCode=UInt32publictypealiasOSTyp

swift - 将 IndexSet 转换为 int 数组的最佳方法是什么?

我想将NStableView.selectedRowIndexes转换为一个int数组。有没有快速的方法来做到这一点?或者我应该迭代IndexSet并将每个项目推送到数组吗? 最佳答案 有两种简单的方法可以做到这一点。1)使用mapletindexes=tableView.selectedRowIndexes.map({$0})2)将NSIndexSet传递给Array初始化器letindexes=Array(tableView.selectedRowIndexes) 关于swift-将

ios - 如何将 NSString 转换为 Int?

我对Apple编程完全陌生,但在阅读Swift之后我觉得它看起来很有趣。我正在尝试在命令行上制作一个简单的数字猜谜游戏,但我无法将整数转换为字符串。我已经尝试在互联网上搜索很多方法来执行此操作,但我不知道出了什么问题。我不想直接接受用户的输入作为整数,我宁愿将它从字符串转换为整数以便更容易处理错误(就像它在Python中的处理方式一样)。这就是我所做的:importFoundation//GetInputletstandardInput=NSFileHandle.fileHandleWithStandardInput()//Converttointfunctionfuncconvert

string - 无法将类型 'Int' 的值转换为预期的参数类型 'Index'(又名 'String.CharacterView.Index')

代码:letx:String=("abc".substringFromIndex(1))print(x)//functail(s:String)->String{//returns.substringFromIndex(1)//}//print(tail("abcd"))这按预期工作。但是如果我取消注释最后4行,那么我会得到:Error:cannotconvertvalueoftype'Int'toexpectedargumenttype'Index'(aka'String.CharacterView.Index')真的很奇怪。 最佳答案