您的位置:首页 > 移动开发 > Objective-C

Object-C,数组NSArray

2015-12-01 21:24 525 查看
  晚上回来,写了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 A2015-12-01 21:16:55.769 NSArrayTest[5346:358824] The second element is B2015-12-01 21:16:55.769 NSArrayTest[5346:358824] The 0 element is A2015-12-01 21:16:55.769 NSArrayTest[5346:358824] The 1 element is B2015-12-01 21:16:55.770 NSArrayTest[5346:358824] The 2 element is C2015-12-01 21:16:55.770 NSArrayTest[5346:358824] The 3 element is D2015-12-01 21:16:55.774 NSArrayTest[5346:358824] The element is A2015-12-01 21:16:55.774 NSArrayTest[5346:358824] The element is B2015-12-01 21:16:55.774 NSArrayTest[5346:358824] The element is C2015-12-01 21:16:55.774 NSArrayTest[5346:358824] The element is DProgram ended with exit code: 0

需要特别指出的是,NSArray是不可变的,就像java中的String对象。NSMutableArray是可变数组。

这点和java中正好相反:Java中的ArrayList正好是可变的,如果想要不可变的,Apache等第三方有实现。  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: