草庐IT

原始类型(Int、Float、Double)的泛型会产生奇怪的错误消息

这里有人可以看一下代码并告诉我它有什么问题吗?我基本上尝试构建一些通用函数,这些函数对某些原始类型(如Int、Float、Double等)进行操作。不幸的是我无法让它正常工作。这是有效的代码(部分)://http://stackoverflow.com/a/24047239/2282430protocolSummableMultipliable:Equatable{func+(lhs:Self,rhs:Self)->Selffunc*(lhs:Self,rhs:Self)->Self}extensionDouble:SummableMultipliable{}funcvec_dot(a

ios - 将 __NSCFNumber 转换为 Int32 Swift

我在Parse.com上设置了一个数据库,其中一列的类型为Number。当我从Parse中提取数据时,出现无法将__NSCFNumber转换为Int32的错误。varindex=word["index"]as!Int32我似乎无法在任何地方找到任何解决方案,有人可以告诉我将__NSCFNumber类型转换为Int32的正确方法是什么吗?谢谢! 最佳答案 __NSCFNumber是NSNumber的子类。要从NSNumber中获取整数,您可以使用其integerValue属性:varindex:Int32=word["index"].

json - 在 Swift 中安全地从 Int 向下转换为 Int8

我通过apijson响应收到一组整数(我将其转换为[String:Any]字典)。这些整数保证在10...-10(含)范围内。在我的模型中,我想将它们存储为Int8。这就是我将json字典转换为它的模型对象的方式,但我想知道是否有更惯用的方法来确保json中的整数实际上适合Int8?funcmove(withdict:JSONDictionary)->Move?{ifletrowOffset=dict[JSONKeys.rowOffsetKey]as?Int,letcolOffset=dict[JSONKeys.colOffsetKey]as?Int{ifletrowInt8=Int8

c - 为什么使用在 32 位和 64 位之间切换的通用 Int 比显式使用 Int32 和 Int64 更好

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭8年前。Improvethisquestion在新的AppleSwift文档中,它说:IntInmostcases,youdon’tneedtopickaspecificsizeofintegertouseinyourcode.Swiftprovidesanadditionalintegertype,Int,whichhasthesamesizeasthecurrentplatform’snativewordsize:Ona32-bi

ios - 将日期字符串转换为 Int Swift

我正在尝试转换字符串:lettime="7:30"到整数:lethour:Int=7letminutes:Int=30我目前正在循环遍历字符串:forcharintime.characters{}但我不知道如何将char转换为int。任何帮助将不胜感激。 最佳答案 @alex_p和@mixel的回答是正确的,但也可以使用Swiftsplit函数来实现:lettime="7:30"letcomponents=time.characters.split{$0==":"}.map{(x)->IntinreturnInt(String(x)

ios - 无法将类型 'Int' 的值转换为预期的参数类型 'UInt32'

我正在尝试在Swift中生成一个随机数:varamountOfQuestions=2varrandomNumber=Int(arc4random_uniform(amountOfQuestions-1))+1但这会导致错误:Cannotconvertvalueoftype'Int'toexpectedargumenttype'UInt32'问题是什么?关于如何解决此错误,我有什么想法吗? 最佳答案 将amountOfQuestions声明为UInt32:varamountOfQuestions:UInt32=2PS:如果您想在语法上

swift - 在 Swift 字典中递增或初始化 Int 的最佳方式

给定一个目录和一个键,如果该键存在于字典中,我想增加该键的值,或者将其初始化为1。字典类型为Dictionary,但根据设计,此键的值类型将始终为Int,因为它只会被此代码更改。我目前的代码在下面,但我想以快速的方式对其进行优化。letv=dict[key]as?Intifv!=nil{dict[key]=v!+1}else{dict[key]=1} 最佳答案 更新从Swift4开始,您可以在下标中使用默认值(假设字典有Value==Int):dict[key,default:0]+=1您可以在SwiftEvolution提案中阅读

swift - 为什么 Realm 使用 RealmOptional<Int> 而不是 Int?对于可选属性?

Realm的documentationonoptionalproperties状态:String,NSDate,andNSDatapropertiescanbedeclaredasoptionalornon-optionalusingthestandardSwiftsyntax.OptionalnumerictypesaredeclaredusingRealmOptional.为什么数字类型使用非标准的RealmOptional而不是Swift内置的可选语法? 最佳答案 Realm模型类自动为访问底层数据库数据的持久属性实现gett

Swift switch 语句考虑了 Int 的所有情况,但编译器仍然显示错误

我理解Swift中的switch语句必须是详尽的,否则我们必须提供一个defaultcase。我在网上看到下面的代码,switch语句已经覆盖了Int中的所有case,但是编译器还是提示switchmustbeexhaustive,可以考虑加一个default子句。有什么我想念的吗?extensionInt{enumKind{caseNegative,Zero,Positive}varkind:Kind{switchself{case0:return.Zerocaseletxwherex>0:return.Positivecaseletxwherex 最佳答

ios - 'CountableClosedRange<Int>' 类型的表达式模式无法匹配 'Int' 类型的值?

在Swift3之前,这段代码可以正常工作,没有任何编译错误,但是在转换为Swift3之后,这段代码无法编译,我不完全理解值类型有何不同。给出的错误是expressionpatternoftype'CountableClosedRange'cannotmatchvaluesoftype'Int'对于我尝试在switch语句中使用不同范围的值的switch情况:switchhour{case0...11:greetingStatement.text="GoodMorning"case12...24:greetingStatement.text="GoodEvening"default:gr