草庐IT

literal_array

全部标签

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

json - iOS swift :"JSON text did not start with array or object and option to allow fragments not set."

当我在swift中将Json字符串转换为字典时,我遇到了问题:ErrorDomain=NSCocoaErrorDomainCode=3840“JSON文本不是以数组或对象开头,并且允许未设置片段的选项。”UserInfo={NSDebugDescription=JSON文本未以数组或对象开头,并且未设置允许片段的选项。}我不知道如何解决这个问题,请给出解决问题的想法。这里我给出了我尝试过的代码..Json字符串转字典的方法是,funcconvertToDictionary(fromtext:String)throws->[String:String]{guardletdata=text

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。这看起来很简单,但我找不到解决方案。在网络上找到了一些示例,其中解决方案是使用字典或解决方案很简单-但我似乎无

Swift 优化级别打破了 NSArray 到 Array 的转换

当SwiftOptimizationLevel设置为None[-Onone](调试默认值)时,以下(有些人为的)代码有效:letnsa=NSArray(array:["foo","bar"])leta=nsaas[String]但是,当设置为Fastest[-O](发行版默认设置)时,应用程序会在运行时崩溃(crashlog)。我幸运地发现我可以通过这样做来解决这个问题:leta=nsaas[AnyObject]as[String]我的问题有两个方面:你能帮我理解为什么会这样吗?是否有更好的方法将NSArray转换为数组?更新这似乎是一个错误。我还没有向苹果报告过。如果其他人愿意花时间

multidimensional-array - 如何快速创建多维数组?

这个问题在这里已经有了答案:MultidimensionalarraysinSwift(7个答案)关闭8年前。我正在尝试将数组类型对象推送到Apple新Swift语言中数组内的特殊索引。它应该看起来像这样=[[...],[...],...],正如我在文档中读到的那样-NSMutableArray类型是如果它是var,则自动分配给变量,但即使在playground中它也会抛出错误:vararr=[];arr[0]=[];//Error:cannotassigntoresultofthisexpressionarr.insert([],atIndex:0)//Error:'NSArray'

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

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