swift 循环nsarray_nsarray swift json - CSDN
  • Swift更新还是蛮快的,以前写的一下小东西基本上编译起来都是一片红,还是稍微记录下,后期可以帮助自己翻阅数组// 方法1 let arrar1 = ["hehe","haha"];// 方法2 let arrar2 = [String]() - 数组使用[]即可 - ...

    Swift更新还是蛮快的,以前写的一下小东西基本上编译起来都是一片红,还是稍微记录下,后期可以帮助自己翻阅

    数组

    // 方法1
    let arrar1 = ["hehe","haha"];
    
    // 方法2
    let arrar2 = [String]()




    - 数组使用[]即可
    - 数组中类型一致,那么就是该类型的数组 let arr: [String]
    - 数组中类型不一致,那么就是any类型的 let arr1: [Any]

    基本操作

    // 数组
    let arr = ["zhangsan","sli"]
    // 这里打印出来是swift样式的
    print(arr)
    
    for a in arr {
        print(a)
    }
    // 像OC一样打印
    print(arr as NSArray)
    
    // 不同类型的数据就全是对象类型
    let arr1 = ["ssa","aaa",1] as [Any]
    print(arr1 as NSArray)
    
    let a = 1
    var array:[String]
    array = ["zhangsan"]
    print(array)
    // 增加字符串
    array.append("hehe")
    // 数组基本操作
    print(array)
    // 拼接基本类型
    array.append("\(a)")
    // 容量
    print(array.capacity)
    print(array)
    // 删除下标
    array.remove(at: 1)
    print(array)
    // 删除全部
    array.removeAll(keepingCapacity: true)
    print(array.capacity)
    // 动态添加成员
    for i in 0..<10 {
        array.append("\(i)")
    //    print("\(array)--\(array.capacity)")
    }
    print(array)
    
    // 数组拼接
    // 初始化
    var array2 = [String]()
    array2.append("1")
    array2.append("2")
    
    array2 += array
    print(array2)
    




    - 如果定义数组时制定了保存对象的类型,择不能像数组里面添加其他类型
    - 可以使用String初始化
    - let类型的数组时不可变的
    - var类型的数组是可变的


    1.Range类型遍历

    //for var i=0;i<10;i++{
    //    print(i)
    //}
    
    // Swift循环
    // 0..<10 代表一个区间返回 0-10 包含头部,不包含尾部
    for i in 0..<10 {
        print(i)
    }
    
    // _ 代表忽略,如果不关心某个参数,就可以使用_ 使用较多
    for _ in 0..<10 {
        print("f")
    }
    
    // 0...10 <=10
    for i in 0...10 {
        print(i)
    }


    2.数组的enumerated遍历

    1.普通获取
    let lists = [1,2,3,4,5,6,7]
    var result = ""
    for num in lists.enumerated() {
        result += "\(num.offset)---\(num.element)||"
    }
    print(result)
    0---1||1---2||2---3||3---4||4---5||5---6||6---7||
    分别打印的是inedx和value
    // 元祖类型遍历
    // 可以吧上面的num换成元祖
    let lists = [1,2,3,4,5,6,7]
    var result = ""
    for (index,item) in lists.enumerated() {
        result += "\(index)--\(item)||"
    }
    print(result)



    可以看下enumerated为什么可以用元祖
    public func enumerated() -> EnumeratedSequence<Array<Element>>
    这东西再点进去就是EnumeratedSequence 类型
    这个东西十个结构体,反正按照文档上的注释来操作,该数组的每个值都是(index,item的形式,分别代表下标和值)

    /// To create an instance of `EnumeratedSequence`, call `enumerated()` on a
    /// sequence or collection. The following example enumerates the elements of
    /// an array.
    ///
    ///     var s = ["foo", "bar"].enumerated()
    ///     for (n, x) in s {
    ///         print("\(n): \(x)")
    ///     }
    ///     // Prints "0: foo"
    ///     // Prints "1: bar"
    public struct EnumeratedSequence<Base : Sequence> : Sequence

    扩展下,这个类型结构体里面还有反向输出以及过滤输出等功能

    // 反向输出
    let lists = [1,2,3,4,5,6,7]
    var result = ""
    for (index,item) in lists.enumerated().reversed(){
        result += "\(index)--\(item)||"
    }
    print(result)
    6--7||5--6||4--5||3--4||2--3||1--2||0--1||
    // 筛选输出为index是2的倍数的值,这里可以进行无线扩展了,如果需要筛选尽管给需要的条件就好了
    let lists = [1,2,3,4,5,6,7]
    var result = ""
    for (index,item) in lists.enumerated().filter({ (index,item) -> Bool in
        return index%2 == 0;
    }) {
        result += "\(index)--\(item)||"
    }
    print(result)
    0--1||2--3||4--5||6--7||
    展开全文
  • Array是Swift中的数组数据类型,而NSArray是OC中的数组数据类型,两者有区别有联系。在Swift中有时候难免会使用到OC中的一些东西,今天我们就来Swift中使用NSArray和Array,并且进行转化。 (1)声明一个Array数组...

          Array是Swift中的数组数据类型,而NSArray是OC中的数组数据类型,两者有区别有联系。在Swift中有时候难免会使用到OC中的一些东西,今天我们就来Swift中使用NSArray和Array,并且进行转化。

    (1)声明一个Array数组,并进行遍历,代码如下:

        let stringArray: Array<String> = ["10", "20","30","40","50"]
            for index in stringArray{
            
                println(index)
            }
            

    输出结果如下:

    使用Swift遍历Array数组没有任何问题,可以使用for...in循环。


    (2)声明一个NSArray数组,并进行遍历,代码如下:

         let stringNSArray: NSArray = ["10", "20","30","40","50"]
            
            for index in stringNSArray{
            
                println(index)
            }

    输出结果如下:

    可见NSArray数组也可以在Swift中直接进行声明并进行遍历。


    (3)声明一个NSArray数组,转化为Array数组,再进行遍历:

       let stringNSArray: NSArray = ["10", "20","30","40","50"]
            let stringArray:[String] = stringNSArray as! [String]
            
            for index in stringArray{
            
                println(index)
            }

    输出结果如下:


    可见NSArray可以在类型转换后直接赋值给Array数组,然后也可以进行遍历。


    (4)声明一个Array数组,转化为NSArray,再进行遍历:

         let stringArray: Array<String> = ["10", "20","30","40","50"]
            let stringNSArray:NSArray = stringArray
            for index in stringNSArray{
            
                println(index)
            }

    输出结果如下:

    可以看到Array数组也可以直接转化为NSArray,并进行遍历。             


          总结,Swift在数组方面Array很好的兼容了OC中的NSArray。可以直接进行赋值转换。


    github主页:https://github.com/chenyufeng1991  。欢迎大家访问!














    展开全文
  • swift NSArray(数组)

    2016-01-14 12:26:46
    1、NSMutableArray、NSArray(数组)     // 通过 [] 创建一个数组和字典,通过 index 和 key 获取对应的值     var shoppingList = ["catfish", "1", "tulips", "blue paint"]  //直



                  1、NSMutableArray、NSArray(数组)            

     

    //        通过 [] 创建一个数组和字典,通过 index key获取对应的值

            

           var shoppingList = ["catfish","1", "tulips","blue paint"]

            //直接使用下标语法来替换数组中的元素:

            shoppingList[1] ="bottle of water"

            //直接使用下标语法来获取数组中的元素:

           let arrayfrist = shoppingList[0]

           println(arrayfrist)

           println(shoppingList)

            

            //可以存放不同类型的元素

           var shopping = ["hntl",2]

            //使用 append方法在数组尾部增加新的元素:

            shopping.append("Flour")

            //使用加法赋值运算符(+=)也可以直接在数组尾部增加新的元素:

            shopping += ["4"]

    //        使用数组的 insert (atIndex:)方法在 atIndex 之前添加元素:

            shopping.insert("0", atIndex:0)

            shopping[1...3] = ["1","3"]

            

    //        使用 removeAtIndex方法来移除数组中的某一项。这个方法把数组在索引位置存储的元素移除,并返回这个被移除的元素(如果不需要可以无视它):

           let shoppingString = shopping.removeAtIndex(0)

            

    //        如果只想把数组中的最后一项移除,使用 removeLast方法而不是 removeAtIndex 方法来避免获取数组的count属性。removeLast也会返回被移除的数据项:

           let appleString = shopping.removeLast()

            

           println(shopping)

           println(shoppingString)

           println(appleString)

            

    //      创建空数组

           var harray :NSMutableArray = []

    //      使用构造器创建一个指定数据类型的空数组

           var emptyArray = [String]()

            emptyArray = ["2"]

           println(emptyArray)

            

    //        数组还提供了创建特定大小并且元素被同时初始化的构造器。把数组的元素数量(count)和初始值(repeatedValue)传入数组即可:

           var threeDoubles = [Double](count:2, repeatedValue: 2.0)

           println(threeDoubles)

    //        数组还提供了创建特定大小并且元素被同时初始化的构造器。把数组的元素数量(count)和初始值(repeatedValue)传入数组即可:

           var anotherThreeDoubles = Array(count: 3, repeatedValue: 3.5)

           println(anotherThreeDoubles)

            

    //        使用加法操作符(+)来合并两种相同类型的数组:

           var sixDoubles = threeDoubles + anotherThreeDoubles

           println(sixDoubles)

            

            

            //        使用 isEmpty属性(返回Bool值)检查 count属性的值是否为 0

           if shopping.isEmpty

            {

                println("The shopping list is empty.")

            }else {

                println("The shopping list is not empty.")

            }

            

            

    //        使用 for-in 循环遍历数组中所有元素:

           for item in shoppingList {

               println("1--\(item)")

            }

            

    //        如果同时需要每个元素的值和索引值,可以使用全局函数 enumerate来进行数组遍历。enumerate 返回一个由元素索引值和数据值组成的键值对。我们可以把这个键值对分解成临时常量或者变量来进行遍历:

           for (index, value) in enumerate(shoppingList) {

               println("Item \(index + 1):\(value)")

            }

            // Item 1: catfish

            // Item 2: bottle of water

            // Item 3: tulips

            // Item 4: blue paint

    展开全文
  • 2019独角兽企业重金招聘Python工程师标准>>> ...

     


    一直以来都是这样正常获取内容

            // 正常获取内容
            for i in 0..<count {
                
                print("\(i)")
            }

    但是今天我需要它递减,想了半天想到一种取巧方法

            var i = count;
            
            while i >= 0 {
                
                print(i);
                
                i -= 1;
            }

    正规方法

            // 递减操作
            for i in (0..<count).reverse() {
                
                print("\(i)")
            }
    
            for i in NSArray.reverse() {
        
                print("\(i)")
            }

    学自:执着_执念 (简书书友)

     

     

    转载于:https://my.oschina.net/codeismygirl/blog/686744

    展开全文
  • 循环 OC风格的 for // 传统写法 for var i = 0; i 10; i++ { print(i) } Swift风格的 for // 遍历 0 ~ for i in 0..10 { print(i) } print("---") // 遍历 0 ~ 10 for i in 0...10 { print(i) } 阶段性小...
  • 转发出处:Swift循环遍历集合方法总结 概要 2016年2月份我总结过OC循环遍历,文章在此:iOS开发遍历集合(NSArray,NSDictionary、NSSet)方法总结。时隔一年,随着Swift的逐渐完善,自己使用Swift开发的...
  • 一、NSArray 1、C语言中的数组1)回顾C语言中的数组使用方法 int a[5]={1,2}; int *pa[3];2、NSArray的基本介绍1)什么是NSArray? NSArray是OC中的数组类, 开发中建议尽量使用NSArray替代C语言中的数组 C语言中数组的...
  • Swift 中的 for循环for后的圆括号可以省略 只能以bool作为条件语句 如果只有条指令for后面的大括号不可以省略 for后面的三个参数都可以省略, 如果省略循环保持语句, 那么默认为真 //OC: int sum = 0; for (i
  • class func parseJSONData(data: AnyObject?) ->NSArray? {//将json转化为NSArray do{ let downloadData=data as? NSData let jsonObject = try NSJSONSerialization.JSONObjectWithDat
  • 3.8 Swift数组的遍历

    2016-12-13 14:24:59
    let array = [1, 3, 4, 5, "", 78, 9,10] as [Any]    for i in array {  print("元素=\(i)")  }   // EnumeratedSequence // 
  • Swift初见】Swift数组

    2015-02-27 20:25:04
    在Objective-C中数组是常用的数据类型,在Swift中同样如此,在OC中有NSArray与NSMutableArray之分,但是在Swift中只有通过let和var来区分数组是否可变,Swift中的数组是类型安全的,所以在某个数据被存入到某个数组...
  • 现在有一个需求:需要加载本地plist文件中的数据,数据格式如下图所示: 即:数组里存放2个数组,然后这2个数组又分别存放几个字典。 要加载这些数据你可能首先会想到的就是...第一种方式:双层for循环 le...
  • 随着Swift的逐渐完善,自己使用Swift开发的项目经验和知识逐渐积累,是时候总结一下Swift循环遍历了。相信Swift一定会给你一些不一样的东西,甚至是惊喜,感兴趣的朋友们下面来一起看看吧。 第一种方式:for-in...
  • break: 跳出循环, 无论循环保持条件是否还为真都不会再执行循环 continue: 跳出本次循环, 如果循环保持条件还为真还会继续执行循环OC: NSArray *arr = @[@1,@3, @5, @7, @8]; for (NSNumber *num in arr) { if ([num...
  • 这两个关键字在 OC 和 Swift 中的用法相同 break: 跳出循环, 无论循环保持条件是否还为真都不会再执行循环 continue: 跳出本次循环, 如果循环保持条件还为真还会继续执行循环 //OC: NSArray *arr = @[@1,@3, @5, @7,...
  • iOS_NSSet与NSArray的区别

    2016-10-10 20:18:43
    NSSet和NSArray的区别。
  • Swift项目需要使用封装好的Objective-c组件、第三方类库,苹果提供的解决方案能够处理日常大部分需求,但还不能称之为完美,混编过程中会遇到很多问题。本文将Swift兼容Objective-c的问题汇总,以帮助大家更好的使用...
  • - (NSArray *)filteredArrayUsingPredicate:(NSPredicate *)predicate 用谓语筛选数组,返回一个新数组。
  • 在Object-C中我们在创建自定义tabbar时会经常把控制器类名(如:HomePageViewController)放在数组中,然后通过for循环批量创建并转换类型为UIVIewController,但是在Swift中这一写法太过复杂,好在最后博主解决了...
1 2 3 4 5 ... 20
收藏数 1,657
精华内容 662
关键字:

swift 循环nsarray