草庐IT

int_void

全部标签

swift : Cannot invoke 'filter' with an argument list of type '(@noescape (Int) throws -> Bool)'

我遇到了这个错误:funccompactCoords(coords:[Int])->[Int]{returncoords.filter({(value)->Boolinreturnvalue!=0})}无法使用类型为“(@noescape(Int)throws->Bool)”的参数列表调用“filter”感谢您的帮助! 最佳答案 您的代码在Xcode7.1中运行良好。您可能不小心尝试在Xcode6.x中运行此代码?你可以像这样缩短你的函数:funccompactCoords(coords:[Int])->[Int]{returnco

swift 错误 : cannot convert value of type 'Int32' to expected argument type 'Int32'

我正在尝试编写一对函数,将String转换为[UInt8]字节数组,然后再转换回来。作为[UInt8]->String函数的一部分,我试图将单个Int32转换为Character。letnum:Int32=5letchar=Character(_builtinUnicodeScalarLiteral:num)但是我遇到了这个奇怪的错误:error:cannotconvertvalueoftype'Int32'toexpectedargumenttype'Int32'letchar=Character(_builtinUnicodeScalarLiteral:num)^~~编辑:我设法使

ios - Strideable.distance(to : A) -> A. Stride in conformance Int64 + 124) 的协议(protocol)见证 - 此错误消息是什么意思?

我的iosswift应用程序从iTunesConnect获得了一堆崩溃日志,堆栈跟踪的顶部显示了错误消息:protocolwitnessforStrideable.distance(to:A)->A.StrideinconformanceInt64+124这来self的代码中无害的一行,如下所示:if(var1-var2>MyClass.THRESHOLD){//Dosomething}var1和var2被声明为Int64类型,而THRESHOLD是:staticletTHRESHOLD=900*1000我有一种预感,这是因为THRESHOLD没有被声明为Int64,尽管我仍然没有假设

swift - 为什么将 Double 转换为 Int 不会在 Swift 中返回可选的 Int?

将String转换为Int会返回可选值,但将Double转换为Int不会返回可选值。这是为什么?我想检查double值是否大于最大Int值,但由于转换函数不返回可选值,我无法使用可选绑定(bind)进行检查。varstringNumber:String="555"varintValue=Int(stringNumber)//returnsoptional(555)vardoubleNumber:Double=555varfromDoubleToInt=Int(doubleNumber)//returns555因此,如果我尝试转换大于最大整数的double,它会崩溃而不是返回nil。va

ios - 无法将类型 '(Bool, NSError!) -> Void' 的值转换为预期的参数类型 'ACAccountStoreRequestAccessCompletionHandler!'

自从在Xcode8(Beta1)和Swift3上升级后,我在这一行中遇到错误:account.requestAccessToAccounts(with:accountType,options:nil,completion:{(success:Bool,error:NSError!)->Voidin它说:Cannotconvertvalueoftype'(Bool,NSError!)->Void'toexpectedargumenttype'ACAccountStoreRequestAccessCompletionHandler!'在那行之前,我定义了“account”和“account

c - Swift3:将原始指针转换为 Int(指针本身就是 int 值,不指向任何地方!)

考虑以下C语言代码:voidsomeFunction(inttype,void*someData){unsignedvalue=(int)someData;}我知道这段代码看起来有点奇怪,但这个函数是一个回调函数,回调函数必须接受一个void*参数,实际上someData通常是指向某个内存结构的指针(type会告诉我是哪个结构)但在那种情况下它不是。在那种情况下,它实际上只是一个unsignedint值;不是指向这样一个值的指针,而是值本身。调用者实际上是这样调用这个函数的:unsignedvalue=...;callbackFunction(type,(void*)value);是的

c++ - Swift - 使用 Objective-C 包装器调用 C++ 文件 - 传递 Int 值

我正在尝试从Swift项目调用C++方法。我用了this设置和获取字符串值的教程,效果很好。然后我尝试对整数值执行相同的操作,但在我的objective-c包装器类中遇到了一些问题。#import#import"TestCppClassWrapper.h"#include"TestCppClass.h"@interfaceTestCppClassWrapper()@propertyTestCppClass*cppItem;@end@implementationTestCppClassWrapper-(instancetype)initWithTitle:(NSString*)title

swift - 与 Int 比较的枚举

要比较具有Int作为我添加的原始值的枚举:func(a:T,b:T)->BoolwhereT.RawValue:Comparable{returna.rawValue现在我可以:enumFoo:Int{casea=1caseb=2}leta=Foo.aletb=Foo.bprint(a但是我应该怎么做才能比较枚举,例如:print(b 最佳答案 你只会做更多你已经在做的事情:func(a:T,b:Int)->BoolwhereT.RawValue==Int{returna.rawValue

ios - Swift 3.0 - NSNumber 和 Int 不能应用于操作数

varRating=self.currentPerson.Ratingletc=Rating-1我正在尝试获取self.currentPerson.Rating的valuex并从valuex中减去1。但我只收到下面的错误。Error:Binaryoperator'-'cannotbeappliedtooperandsoftype'NSNumber'and'Int'问题:我该如何解决这个问题?谢谢 最佳答案 问题已解决。只需添加.intValue。varRating=self.currentPerson.Ratingletc=Rati

swift - Float 到 Int 的安全转换?

Float到Int的转换被记录为一个简单的方法:leti=Int(x)然而,仅此一项是不安全的,因为如果x太大而不适合整数,或者是某种NaN,Swift应用程序将会崩溃。那么将Float或Double的未知内容转换为Int(Int32、UInt16等)的最简单但安全的方法是什么,例如不冒撞车的危险?有Int?()类型吗?或等效的“iflet”语句? 最佳答案 Int(exactly:)可能是您正在寻找的:Createsanintegerfromthegivenfloating-pointvalue,ifitcanberepresen