Object-C,陣列NSArray

小雷FansUnion發表於2015-12-01

  晚上回來,寫了2個iOS應用程式。

  就是在介面中,展示標籤。一種是手動構造介面,然後繫結事件。另外一種是,使用自帶的介面作為容器,但是手動向裡面放其它介面元素。

   

  書中的觀點是,使用圖形化介面,構造介面比較好。


  然後,又寫了個Object-C陣列的例子。


  Object-C相對簡單一些,黑屏控制檯輸出,而iOS視覺化介面的程式,程式碼較多,也不好描述。

  iOS程式的“上下文環境”更復雜一些把,而Object-C語言,和Java就類似。


//
//  main.m
//  NSArrayTest
//
//  Created by fansunion on 15/12/1.
//  Copyright (c) 2015年 demo. All rights reserved.
//

#import <Foundation/Foundation.h>

//演示不可變陣列
int main(int argc, const char * argv[]) {
    @autoreleasepool {
        //不可變陣列,用類方法構造陣列
        NSArray* array =[NSArray arrayWithObjects:@"A",@"B",@"C",nil];
        //訪問元素有2種方式
        NSLog(@"The first element is %@",array[0]);
        NSLog(@"The second element is %@",[array objectAtIndex:1]);
        
        //不可變陣列,在原來的基礎上再增加一個元素D返回心的陣列
        NSArray* newArray = [array arrayByAddingObject:@"D"];
        //使用for迴圈,列印新的陣列
        for(int index=0;index<newArray
            .count;index++){
            NSLog(@("The %i element is %@"),index,newArray[index]);
        }
        
        //使用列舉遍歷器,列印心的陣列
        NSEnumerator *enumerator =[newArray objectEnumerator];
        id object;
        while(object =[enumerator nextObject]){
            NSLog(@"The element is %@",object);
        }
        
        
        
    }
    return 0;
}

  

  程式輸出

2015-12-01 21:16:55.768 NSArrayTest[5346:358824] The first element is A

2015-12-01 21:16:55.769 NSArrayTest[5346:358824] The second element is B

2015-12-01 21:16:55.769 NSArrayTest[5346:358824] The 0 element is A

2015-12-01 21:16:55.769 NSArrayTest[5346:358824] The 1 element is B

2015-12-01 21:16:55.770 NSArrayTest[5346:358824] The 2 element is C

2015-12-01 21:16:55.770 NSArrayTest[5346:358824] The 3 element is D

2015-12-01 21:16:55.774 NSArrayTest[5346:358824] The element is A

2015-12-01 21:16:55.774 NSArrayTest[5346:358824] The element is B

2015-12-01 21:16:55.774 NSArrayTest[5346:358824] The element is C

2015-12-01 21:16:55.774 NSArrayTest[5346:358824] The element is D

Program ended with exit code: 0


需要特別指出的是,NSArray是不可變的,就像java中的String物件。

NSMutableArray是可變陣列。


這點和java中正好相反:Java中的ArrayList正好是可變的,如果想要不可變的,Apache等第三方有實現。  

相關文章