草庐IT

6、Arrays类

全部标签

arrays - 快速存储对数组的引用

我想将一个数组传递给一个对象并存储对该数组的引用。我希望能够在此对象内修改此数组,并确保它在其他任何地方都已修改。这是我想要完成的(代码不工作的原因)classFoo{varfoo:Arrayinit(foo:Array){self.foo=foo}funcmodify(){foo.append(5)}}vara=[1,2,3,4]letbar=Foo(a)bar.modify()print(a)//Mygoalisthatitwillprint1,2,3,4,5到目前为止我的发现A)数组(默认情况下)以奇怪的方式传递。在您修改数组长度之前,它是一个引用。一旦您修改长度,它就会被复制和

arrays - 如何在 Swift 中循环遍历 <UnsafeMutablePointer> 数组的元素

我是Swift的新手,想遍历MKMapPoints的数组我从MKPolygon得到的调用myPoly.points().但是,我对如何遍历指针C数组的每个元素感到困惑。forelementinmyPointsArray{}不起作用,我不知道如何在Swift中确定这种数组的元素数。有任何想法吗?感谢您的帮助! 最佳答案 UnsafeBufferPointer提供一个不安全的指针和一个作为集合的计数,因此您可以for..in对其进行安全下标,将其传递给适用于集合等的算法:forpointinUnsafeBufferPointer(sta

arrays - 使用关联值映射 swift 枚举

假设我们有一个具有关联值类型的枚举。在下面的示例中,两个值类型是简单的对象,其中包含要共享的图像和url。enumContent{caseImage(ShareableImage)caseVideo(ShareableVideo)}现在让我们有一系列的视频和图像案例。letmedia:[Content]=[*alotofenumcasesinsidehere*]到目前为止,上面的所有代码都不能在代码库中以任何方式更改,我需要使用它。我的问题从这里开始:让我们用媒体过滤数组以仅显示图像案例letimageOnlyCases:[Content]=media.filter{item->Boo

arrays - Int类型不符合协议(protocol)顺序

我在Swift3中有以下代码:varnumbers=[1,2,1]fornumberinnumbers.count-1{//errorifnumbers[number]我正在检查索引[number]上的值是否总是高于索引[number+1]上的值。我收到一个错误:TypeIntdoesnotconformtoprotocolsequence有什么想法吗? 最佳答案 它可能很快。您可以使用此迭代。fornumberin0.. 关于arrays-Int类型不符合协议(protocol)顺序,

arrays - Swift:可选数组计数

在Objective-C中,如果我有以下属性:@property(strong,nonatomic)NSArray*myArray;返回myArray中多个对象的方法如下所示:-(NSInteger)numberOfObjectsInMyArray{return[self.myArraycount];}这将返回数组中对象的数量,如果myArray==nil则返回0;我能想到的在Swift中执行此操作的最佳等效项是:varmyArray:Array?funcnumberOfObjectsInMyArray()->Int{returnmyArray?myArray!.count:0}因此检

arrays - 获取数组中出现次数最多的值

我有一个数字数组,我想知道这个数组中哪个数字出现频率最高。该数组有时有5-6个整数,有时有10-12个,有时甚至更多-数组中的整数也可以不同。所以我需要一个可以处理不同长度和数组值的函数。一个例子:myArray=[0,0,0,1,1]另一个例子:myArray=[4,4,4,3,3,3,4,6,6,5,5,2]现在我正在搜索一个函数,它给出0(在第一个示例中)作为Integer,因为它在这个数组中是3次而数组中的另一个整数(1)只是阵列中的2次。或者对于第二个示例,它将是4。这看起来很简单,但我找不到解决方案。在网络上找到了一些示例,其中解决方案是使用字典或解决方案很简单-但我似乎无

arrays - 具有通用项的 Swift 数组扩展

我正在使用Swift3.1并且有一些通用结构:structSection{letinfo:InfoT?letitems:[ItemsT]}并希望使用自定义方法对这种泛型类型的元素进行数组扩展:extensionArraywhereElement==Section{//Justdummyexamplefunction:funcdebugDummy(){forsectioninself{letinfo=section.infoprint("sectioninfo:\(info).")foriteminsection.items{print("item:\(item).")}}}}这给我编译

arrays - 在两个元素的数组中拆分大数组

我有大量对象列表,我需要将它们分成一组两个元素以用于UI提案。例子:[0,1,2,3,4,5,6]由这四个数组组成一个数组[[0,1],[2,3],[4,5],[6]]拆分数组的方法有很多种。但是,如果阵列很大,什么是最有效(成本最低)的。 最佳答案 如果你想要一个子切片数组,你可以使用split函数生成它,使用闭包捕获状态变量并在它传递每个元素时递增它,仅在每n个元素上拆分元素。作为Sliceable的扩展(仅限Swift2.0,在1.2中需要是一个自由函数):extensionSliceable{funcsplitEvery(n

arrays - 如何在 Swift 中获取指向数组的指针(而不是副本)?

在Swift中,将一个数组赋值给一个新变量实际上就是复制。例如(如苹果文档中的Array):varnumbers=[1,2,3,4,5]varnumbersCopy=numbersnumbers[0]=100print(numbers)//Prints"[100,2,3,4,5]"print(numbersCopy)//Prints"[1,2,3,4,5]"我如何实际获得指向同一个数组的指针,以便修改元素反射(reflect)在同一个数组中?(这样做的原因是我在另一个类的静态实例中访问,例如“SomethingManager.sharedInstance.arrayList[aKey]

arrays - Swift Array.contains() 不调用 PFUser 子类的 Equatable 函数

这个问题在这里已经有了答案:NSObjectsubclassinSwift:hashvshashValue,isEqualvs==(4个答案)关闭6年前。我有一个PFUser的子类-MYUser类实现了Equatable函数,以这种方式比较objectId:func==(left:MYUser,right:MYUser)->Bool{returnleft.objectId==right.objectId}但是当我调用Array.contains()方法时,它不会调用此Equatable函数的实现,这会导致不正确的结果。例如,这里:lethasUser=self.selectedUser