jjzjj

ios - 如何从元组数组中删除对象

我学习Swift,我发现数组的功能非常有限,这真的很烦人。考虑以下元组数组:varpoints=Array()有没有一种简单的方法可以从该数组中删除特定对象?最接近的是removeAtIndex方法,尽管我不知道如何获取元组的索引!我试过了,但它似乎不适用于元组,因为它们不可相等:self.points.removeAtIndex(Int(find(self.points,point))) 最佳答案 我建议你放弃元组并像这样使用你自己的结构:structTouchPoint:Equatable{vartouch:UITouchvar

arrays - 如何从 Swift 中的元组数组创建条纹

我有一个元组数组,如下所示:[("07-20-2016",2),("07-22-2016",5.0),("07-21-2016",3.3333333333333335)]它由一个表示日期的String和一个表示心情的Double组成(心情小于或等于3表示那天是美好的一天)。我想弄清楚如何创造一连串的好日子。所以我认为我首先需要做的是对元组数组进行排序,以按日期对它们进行排序。然后我需要计算低于情绪值3的元组(如果它们在一行中)。在这种情况下,结果将为1,因为只有1天低于3。如果我有一个像这样的元组数组:[("07-22-2016",5.0),("07-21-2016",3),("07-

ios - Swift 使用 CollectionType .filter .indexOf 和 .map 在元组数组中查找值

通过以下代码,您可以展示如何使用SwiftCollectionType.filter.indexOf.map实例方法在命名元组数组中查找值吗?文档here还不够。importUIKitclassFoo{privatevarmData:Stringinit(data:String){mData=data}funcprintData(){print(mData)}}classViewController:UIViewController{overridefuncviewDidLoad(){super.viewDidLoad()varmyList=[(code:Int64,list:[Foo

ios - swift 1.2 "Cannot express tuple conversion"错误

这个方法在Swift的最后一个稳定版本中运行良好,但在Swift1.2中无法编译:finalfuncrotateBlocks(orientation:Orientation){ifletblockRowColumnTranslation:Array=blockRowColumnPositions[orientation]{for(idx,(columnDiff:Int,rowDiff:Int))inenumerate(blockRowColumnTranslation){blocks[idx].column=column+columnDiffblocks[idx].row=row+ro

swift - 映射和拆分数组中的值

我如何映射数组并在同一个闭包中,将值拆分为两个变量?此代码有效,但是,我只想使用一个闭包,而不是三个。letarray=[1,2,3,4]leta=array.map{v->(Int,Int)in(v*2,v*10)}letx=a.map{$0.0}lety=a.map{$0.1} 最佳答案 这里有一个可能不太可读,但可以说是更函数式的解决方案(不可变数组,没有for-each循环,纯函数只作用于它的输入并且不会在闭包外产生副作用):letarray=[1,2,3,4]let(x,y)=array.reduce(([Int](),[

arrays - 将 C 字符数组转换为字符串

我有一个与C库互操作的Swift程序。这个C库返回一个内部有char[]数组的结构,如下所示:structrecord{charname[8];};定义已正确导入Swift。但是,该字段被解释为8个Int8元素的元组(类型为(Int8,Int8,Int8,Int8,Int8,Int8,Int8,Int8)),我不知道如何使用Swift将其转换为String。没有接受Int8元组的String初始化器,并且似乎不可能获得指向元组第一个元素的指针(因为类型可以是异质的,这并不奇怪)。现在,我最好的想法是创建一个微型C函数,它接受一个指向结构本身的指针,并将name作为char*指针而不是数

Swift:同时将元组解包为可变和不可变变量

我有一个Swift函数,它返回一个包含两个值的元组。第一个值通常但不总是用作调用者中一段可变状态的“更新”版本(我知道我也可以使用inout代替元组,但这使得它在保留新状态的同时保持旧状态更烦人)。第二个值是由函数生成的通常不可变的返回值,它无意覆盖任何现有的可变状态。从概念上讲,用法如下所示:varstate=//initialize(state,retval1)=process(state)(state,retval2)=process(state)(state,retval3)=process(state)这里的问题显然是retval1,retval2,和retval3永远不会声

templates - Swift:静态 "append"到元组类型

我正在编写的Swift库中有一个模板化结构。这个结构有两个特点:每个结构都“包装”或“代表”另一种任意类型。Foo包装T这些结构可以“组合”形成第三个结构,其表示类型应该是前两个结构的“组合”(阅读:元组)。在另一个世界,如果fooA:Foo和fooB:Foo,然后fooA+fooB应该是Foo类型.当只有两种类型可以组合时,这就足够了,但是当你链接这个组合操作时,你开始得到嵌套的元组,这不是我想要的。例如,在下面的代码中:leta=Foo(/*initialize*/)letb=Foo(/*initialize*/)letc=Foo(/*initialize*/)letd=a+b//

arrays - 如何在 Swift 中使用 for 循环遍历元组数组

我有一个元组数组定义为:varpoints2D:Array=[(1,1),(2,3),(4,3),(9,5),(3,3),(7,6),(5,6)]当尝试像这样经历它时:funcfoo(){for(x,y)inpoints2D{}}我收到此错误消息:'τ_0_0'isnotconvertibleto'(@lvalueArray,@lvalueArray)'这是什么意思,我做错了什么? 最佳答案 points2D的类型不是Array,而是Array,所以让Swift推断类型:varpoints2D=[(1,1),(2,3),(4,3),

IOS FoodTracker 教程 : Value of tuple type '()' has no member 'path'

我正在完成IOSSwift教程“FoodTracker”,但是有一个错误我可以找到解决方案,但我不明白哪里出了问题以及如何解决它:错误:Valueoftupletype'()'hasnomember'path'此错误在以下代码中针对变量“Meal.ArchiveUrl.path”显示。我的代码,在MealtableViewController(相当于IOS教程):privatefuncsaveMeals(){letisSuccessfulSave=NSKeyedArchiver.archiveRootObject(meals,toFile:Meal.ArchiveUrl.path)if