草庐IT

arrays - 无法使用类型为 "UInt32"的索引为类型 [String] 的值下标

我一直在尝试创建一个代码来生成随机名称。在这里importUIKitletarrayOfNames:[String]=["Giovanni","Simone","Francesco","Ahmet","Valerio","Federico"]letarrayOfsNames:[String]=["İlGenio","Loscemo","Verga","Fermi","Medici","L'assasino"]varcasual1=arc4random_uniform(7)varcasual2=arc4random_uniform(7)letname="\(arrayOfNames[ca

objective-c - Swift转换C的uint64_t与使用自己的UInt64类型不同

我正在将应用程序从(目标-)C移植到Swift,但必须使用用C编写的第三方框架。有一些不兼容项,如typedef,解释为int,但必须作为uint等传递到框架的函数。因此,为了避免在整个swift应用程序中持续执行强制转换操作,我决定将C头文件传输给swift,使所有类型都在一个地方,因为我需要它们。我几乎能转移一切,克服了很多障碍,但这一个:C头定义了一个结构,其中包含一个uint64变量等。此结构用于将数据作为指针传输到回调函数。回调函数接受一个void指针作为参数,我必须用unsafemutablepointer操作将其强制转换为结构的类型(或者头的另一个结构,如果合适的话)。只

c++ - swift 中 uint8_t 的等价物是什么?

在obj-c/c++框架中有一个方法接受一个uint8_t和一个常规的int:-(bool)push:(uint8_t*)buflength:(int)len;我使用桥接器文件来访问此方法,但是当我使用UInt8和Int快速调用它时,出现以下错误:无法使用“(UInt8,length:Int)”类型的参数列表调用“push”我怎样才能让它发挥作用? 最佳答案 该方法需要一个指向UInt8类型元素数组的指针和一个Int32值。你可以这样做:varbuffer:[UInt8]=[0,1,2]yourObject.push(UnsafeM

ios - 二元运算符 % 不能应用于 UInt32 和 int 类型的操作数

varY:Int=0Y=arc4random()%5我遇到了错误"binaryoperator%cannotbeappliedtooperandsoftypeUInt32andint".HowcanIfixmysyntax 最佳答案 使用跟随varY:Int=0Y=Int(arc4random()%5) 关于ios-二元运算符%不能应用于UInt32和int类型的操作数,我们在StackOverflow上找到一个类似的问题: https://stackover

swift - 使用 += 将字符附加到字符串时出错 : String is not identical to UInt8

当尝试使用+=运算符将Character附加到String时,出现以下错误:StringisnotidenticaltoUInt8错误发生在下面代码中的puzzleOutput+=char行:letpuzzleInput="greatmindsthinkalike"varpuzzleOutput=""forcharinpuzzleInput{switchchar{case"a","e","i","o","u":continuedefault:puzzleOutput+=char}}println(puzzleOutput)如何将Charater附加到String?

swift - {(Int)} 与 UInt8 不同

目前正在使用beta5版本的swift并且+=运算符肯定有变化funcdealCards1()->[Int]{foriin0...25{comp1PlayDeck+=shuffledDeck[i]}returncomp1PlayDeck}这会抛出'[(Int)]'isnotidenticalto'UInt8'我不太确定进行了哪些更改,但是这很令人困惑。 最佳答案 我怀疑错误是+=运算符的变化,它现在只组合Array,而不是Array的值.shuffledDeck[i]不返回Array。创建一个包含其值的数组是一种解决方法。示例:co

ios - Swift 中 SQLite 项目中的 UnsafePointer<Uint8> 问题

我们正在iOS和Swift中实现SQLite,而不使用包装器或Objective-C桥接。一切正常,除了进行查询和提取结果时。问题在于UnsafePointer在Swift中从SQLite返回如下:varquerySQL="SELECTaddress,phoneFROMCONTACTSWHERENAME='myName'"varcQuery=querySQL.cStringUsingEncoding(NSUTF8StringEncoding)varstatement:COpaquePointer=nilifsqlite3_prepare_v2(contactsDB,cQuery!,-1

ios - 在 Swift 中将 UIImage 转换为 UInt8 数组

全部!我一直在对此进行大量研究,并将几种不同的解决方案集成到我的项目中,但它们似乎都不起作用。我目前的解决方案是从thisthread借来的.但是,当我运行我的代码时,会发生两件事:像素阵列保持初始化但未填充(全为0)我遇到两个错误:CGBitmapContextCreate:不支持的参数组合:设置CGBITMAP_CONTEXT_LOG_ERRORS环境变量查看详情和CGContextDrawImage:invalidcontext0x0.Ifyouwanttoseethebacktrace,pleaseset有什么想法吗?这是我正在为我的Image类调用的当前内置函数:init?(

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

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

swift 3 : convert a null-terminated UnsafePointer<UInt8> to a string

我有一个capi,它返回一个空终止字符串,它是一个类型为unsignedchar*的数组。(对应于UnsafePointer)。Swift有初始化器String(validatingUTF8:),但参数必须是UnsafePointer(又名UnsafePointer),并且没有简单的方法可以在两者之间进行转换。如何将这个以null结尾的C字符串转换为Swift字符串? 最佳答案 在Swift3中,String有两个初始化器publicinit(cString:UnsafePointer)publicinit(cString:Unsa