草庐IT

arrays - 在swift 3中对元组数组进行排序

你好,我有以下内容classMyClass{varmyString:String?}varmyClassList=[String:MyClass]()我想通过Swift3中的myString变量按字母顺序对这个数组进行排序3任何指针? 最佳答案 如上所述,您有一个字典,而不是元组。但是,字典确实有一个sorted(by:)方法,您可以使用该方法对键/值对元组数组进行排序。这是一个例子:varm:[String:Int]=["a":1]letn=m.sorted(by:{(first:(key:String,value:Int),se

swift - 元组比较是如何工作的

letp1=(name:"John",age:12)letp2=(color:"Red",size:12)ifp1==p2{print("equal")}else{print("notequal")}我原以为这两个元组不兼容,因为参数名称不同,而且代码无法编译。但它工作正常。很想知道怎么做。Swift是否会根据属性类型自动创建==运算符,然后只做一个简单的lhs与rhs。是吗?编辑:funcgivePerson()->(name:String,age:Int)?{return("alex",2)}funcextract(){varp3:(Name:String,age:Int)ifle

struct - 将结构内的 C 字符串转换为 Swift 字符串

我在Swift应用程序中使用现有的C库,并尝试将C字符缓冲区转换为Swift字符串。桥接.htypedefstruct{charmfg[8];charmodel[8];}motorcycle;voidGetMotorcycle(motorcycle*m);示例.swiftvarcycle=motorcycle(mfg:(0,0,0,0,0,0,0,0),model:(0,0,0,0,0,0,0,0));GetMotorcycle(&cycle)varmanufacturer:String=String.fromCString(cycle.mfg)//Error这会产生“找不到接受所提供

Swift 数组到元组数组

我有以下两个数组:letxaxis=["monday","tuesday","wednesday","thursday","friday"]letyaxis=[1,2,3,4,5]我想将它们合并成一个数组,如下所示:[("monday",1),("tuesday",2),("wednesday",3),("thursday",4),("friday",5)] 最佳答案 使用zip和map:letxaxis=["monday","tuesday","wednesday","thursday","friday"]letyaxis=[1,

ios - 如何从元组数组中找到元组元素的索引? iOS, swift

这是在tableviewcellforrowatindexpath里面varvalueArray:[(String,String)]=[]if!contains(valueArray,v:(title,status)){letv=(title,status)valueArray.append(v)}这是在didselectrowatIndexPath里面letcell=self.tableView.cellForRowAtIndexPath(selectedRow!)varnewTuple=(cell!.textLabel!.text!,cell!.detailTextLabel!.t

swift - 如何检测该参数是两种任意类型的元组?

我实际上做的事情更复杂,但它归结为能够实现功能来检测某物是一个元组,而不管其元素的类型是什么。这是我的方法,但行不通(请参阅最后一行的评论):funcisTuple(b:Any)->Bool{returnbis(Any,Any)}letmyString="aa"letmyDouble=1.2isTuple((myString,myDouble))//returnsfalse为什么不起作用?Any不应该在元组中充当“通配符”吗?它是一个已知的Swift错误吗(如果不是,我应该将其视为一个错误并报告)?有没有其他方法可以使isTupple方法起作用?编辑@NateCook'sanswer完

swift - 如何在 Swift 中将 Tuple 转换为 AnyObject

以下代码编译错误:Error:(112,20)type'(String,Int)'doesnotconformtoprotocol'AnyObject'funcmyMethode(){aMethodeThatICanNotChange{leta=("John",7)returna//Error:(112,20)type'(String,Int)'doesnotconformtoprotocol'AnyObject'}}funcaMethodeThatICanNotChange(closure:()->AnyObject){//dosomethingwithclosure}如何将Tupl

c - 在 Swift 中获取指向 C char 数组的指针

A有这样的结构(在mongodbc驱动程序的bson.h中定义):typedefstruct{uint32_tdomain;uint32_tcode;charmessage[504];}bson_error_t;在Swift中,我有一个指向这个结构的指针,如下所示:err:UnsafePointer=...现在无论我做什么,我都无法将message[504](Swift将其视为(Int8,Int8,Int8,...504次)的元组)转换为char*在String.fromCString()中使用它。甚至可以在Swift中做到这一点吗?作为临时解决方案,我在单独的.c文件中创建了一个辅助

swift - 闭包参数中的元组成员提取

考虑这个元组数组:vartupleArray=[(String,Int)]()tupleArray.append(("bonjour",2))tupleArray.append(("Allo",1))tupleArray.sort{(t1,t2)->Boolinlet(_,n1)=t1let(_,n2)=t2returnn1我想通过做这样的事情来缩短闭包:tupleArray.sort{((_,n1),(_,n2))->Boolinn1第一:可能吗?第二:如果可能的话语法是什么?谢谢 最佳答案 好吧,你可以使用简短的闭包语法:tup

swift - 在闭包中解构元组的元组

我可以轻松地解构元组的元组:lettt=(2,(3,4))let(a,(b,c))=ttb//=>3我想在声明闭包时做同样的事情,例如我认为我可以写:[tt].map{(a,(b,c))in//Useb}Xcode提示“未命名的参数必须用空名称写入”。我让它“工作”的唯一方法是:[tt].map{(a,tuple:(b:Int,c:Int))in//Usetuple.b}这有两个我想避免的缺点:我需要使用tuple.b而不是b我需要指定b和c的类型顺便说一句,我的用例是我想用索引做一个reduce,所以我正在尝试使用array.enumerate().reduce