草庐IT

arrays - 连接 Swift 的 Int 数组以创建一个新的 Int

你如何制作Array([1,2,3,4])变成常规的Int(1234)?我可以让它走另一条路(将Int分成单独的数字),但我不知道如何组合数组,以便数字构成新数字的数字。 最佳答案 这会起作用:letdigits=[1,2,3,4]letintValue=digits.reduce(0,combine:{$0*10+$1})对于Swift4+:letdigits=[1,2,3,4]letintValue=digits.reduce(0,{$0*10+$1})或者在更多版本的Swift中编译:(感谢RomuloBM。)letdigit

ios - 在 Swift 中将字符串(浮点值)转换为 int

你好,我有字符串“(带有float值)”letfloatstring:String="23.24"print(floatstring)我想将浮点型String转换为Int。谢谢! 最佳答案 选项1letintNum=Int(Float(floatstring)!)选项2iffloatstring.rangeOfString(".")!=nil{leti=Int(floatstring.componentsSeparatedByString(".").first!)print(i)} 关于

ios - 'Int' 与 'String.Index' 不同

作为练习,我正在使用Swift重写我的一个应用。在Objective-C中,我有以下代码行:NSRangeextendedRange=NSUnionRange(range,[[self.backingStorestring]lineRangeForRange:NSMakeRange(NSMaxRange(range),0)]);在swift中它看起来像这样:letstr=backingStore.stringletextendedRange:NSRange=NSUnionRange(range,str.lineRangeForRange(NSMakeRange(NSMaxRange(r

ios - 无法使用 Int 类型下标 '[NSIndexPath]' 类型的值

所以我目前正在使用Xcode7beta将一个项目转换为Swift2,但我目前收到错误:Cannotsubscriptavalueoftype'[NSIndexPath]?'withatype'Int'对于下面的代码:letindexPath=indexPaths[0]as!NSIndexPath当用户使用prepareForSegue方法在UICollectionView中选择一个单元格时尝试将数据传递给ViewController。这是完整的prepareForSegue方法。我不确定这是否是Swift2错误,但在iOS8.4上使用Swift1.1时它工作正常。overridefun

swift - 函数安全地分配一个可选的变量,或者分配默认值如果 nil : Could not cast value of type 'Swift.Int' to 'Swift.String'

你好!..我再次失败寻求帮助——希望这段代码+任何可能的答案都会对社区有所帮助。..所以我正在尝试制作一种方法,允许我安全地将可选值分配给lhs,例如:varcool_variable=risky_optional!,不必中断它所在的任何范围的流程..这样做的目的是减少控制语句,并且不会在强制解包时立即使程序崩溃(我花了很多时间试图设计好的代码不会自然地这样做)。..起初,我以为我已经成功了,因为一切都很完美......然后在我的第四轮测试中,我得到了Couldnotcastvalueoftype'Swift.Int'(0x105c52190)to'Swift.String'(0x10

swift - 在 Swift 中,Int 是否有一个隐藏的接受字符串的初始化器?

我试着查看Int的SwiftAPI,但我仍然不确定为什么会这样:varfoo=Int("100")我在文档中看到以下初始化器:init()init(_:Builtin.Word)init(_:Double)init(_:Float)init(_:Int)init(_:Int16)init(_:Int32)init(_:Int64)init(_:Int8)init(_:UInt)init(_:UInt16)init(_:UInt32)init(_:UInt64)init(_:UInt8)init(_:radix:)init(_builtinIntegerLiteral:)init(big

swift - 如何使用 Swift 在扩展返回 Int 中创建变异函数?

为什么这段代码不起作用?protocolExampleProtocol{varsimpleDescription:String{get}mutatingfuncadjust()}extensionInt:ExampleProtocol{varsimpleDescription:String{return"Thenumber\(self)"}mutatingfuncadjust(){self+=42}}varx:Int=7lety:Int=x.adjust()这是我在XCODE上得到的有没有办法让adjust()返回Int而不改变它在协议(protocol)中的定义?

Swift:将任何对象转换为 Int64 = nil

我有一个问题。我想知道为什么会这样?vardict:[String:Any]=["intValue":1234,"stringValue":"sometext"]dict["intValue"]as?Int64//=nil(why)dict["intValue"]as?Int//=1234谁能告诉我为什么转换为Int64会返回nil?编辑部分:我已经简化了我的问题,但我认为这不是一个好主意。:)在我的特殊情况下,我将从WKScriptMessage的消息体。我知道在Dictionary的一个字段中有一个Int值可以是大于Int32。因此,如果我将此值转换为Int,它将适用于64位系统。

ios - 如何快速将 Int 转换为 int?

我有一个名为number的Int类型的变量varnumber=value!.integerValueasInt现在我必须使用该值创建一个NSNumber对象。我正在尝试使用这个构造函数value=NSNumber(int:number),但它不起作用。它需要原始类型int,我猜不是Int。有人知道如何解决这个问题吗?谢谢! 最佳答案 你只需做value=number正如您在文档中看到的那样:https://developer.apple.com/library/ios/documentation/Swift/Conceptual/B

ios - 如何将数组中的每个 Int 值乘以 Swift 中的常量?

比如说,我有一个数组[20,2,3]我如何在Swift中将此数组的每个Int值相乘?那么2x数组变为[40,4,6],3x数组变为[60,6,9]等等? 最佳答案 你可以使用.map():letvalues=[20,2,3]letdoubles=values.map{$0*2}lettriples=values.map{$0*3}如果您想就地进行更新:varvalues=[20,2,3]values.enumerated().forEach{index,valueinvalues[index]=value*2}//valuesisn