Object-C,数组NSArray
晚上回来,写了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等第三方有实现。
Object-C,数组NSArray的更多相关文章
- 15.Object-C--浅谈Foundation框架OC数组NSArray与NSMutableArray
昨天总结了一下NSString与NSMutableString,今天我在这里总结一下NSArray与NSMutableArray. NSArray数组是:不可变数组. nil 是数组元素结束的标记.O ...
- Foundation框架—— 数组 (NSArray NSMutableArray )
基础知识回顾 1.在给可变数组添加元素时,要保证该数组已被初始化 2.在遍历可变数组时,不能对其进行增删改 3.NSMutableArray继承自NSArray,几乎拥有NSArray的一切方法. 4 ...
- IOS数组NSArray与NSMutableArray知识点
此文是对数组NSArray与NSMutableArray知识点的总结,主要是一些常见的操作,别外一些操作见其相应的文档,下面的代码部分还运用的第三方插件BlocksKit相结合: a:Foundati ...
- 【转】不可变数组NSArray与可变数组NSMutableArray
原文网址:http://www.jianshu.com/p/1ad327f56d1d 不可变数组NSArray //创建一个空数组 NSArray *array = [NSArray array]; ...
- Object -C 数组 -- 笔记
// // main.m // Array // // Created by facial on 23/8/15. // Copyright (c) 2015 facial_huo. All ...
- 第二十九节:Java基础知识-类,多态,Object,数组和字符串
前言 Java基础知识-类,多态,Object,数组和字符串,回顾,继承,类的多态性,多态,向上转型和向下转型,Object,数组,多维数组,字符串,字符串比较. 回顾 类的定义格式: [类的修饰符] ...
- 数组NSArray与NSMutableArray的常用方法
数组中可以放任何类型的数据,并且一个数组中的元素类型可以不一致.只要是(id类型)对象. NSArray 1.初始化 NSArray *array = @[]; 2.初始化,最后需要以nil结尾 NS ...
- 不可变数组NSArray
//数组里面不允许存放基本数据类型,只能存放“对象” NSArray *array = [NSArray arrayWithObjects:@"周星星",@"尹天仇&qu ...
- PHP简单 对象(object) 与 数组(array) 的转换
数组是PHP的灵魂,非常强大,但有时候面向对象编程也是挺方便的,数组 与 对象 之间切换也是常有的事: /** * 数组 转 对象 * * @param array $arr 数组 * @return ...
随机推荐
- Django REST Framework - 分页 - 渲染器 - 解析器
为什么要使用分页? 我们数据表中可能会有成千上万条数据,当我们访问某张表的所有数据时,我们不太可能需要一次把所有的数据都展示出来,因为数据量很大,对服务端的内存压力比较大还有就是网络传输过程中耗时也会 ...
- React入门基础
1-react概念: React是一个用于构建用户界面的JavaScript库.React主要用于构建UI,很多人认为React是MVC中的V(视图).React起源于Facebook的内部项目.Re ...
- SpringBoot中使用过滤器Filter
场景:API的参数都是经过加密的,于是在过滤器中,将获取到的请求的参数先解密再去进行处理 一.实现Filter接口 public class TestFilter implements Filter ...
- js 对象的创建方式和对象的区别
js一个有三种方法创建对象,这里做一个总结. 1.对象直接量 所谓对象直接量,可以看做是一副映射表,这个方法也是最直接的一个方法,个人比较建议, 1 2 3 4 5 6 7 8 9 10 11 12 ...
- NYIST 749 蚂蚁的难题(八)
蚂蚁的难题(八)时间限制:2000 ms | 内存限制:65535 KB难度:5 描述蚂蚁是一个古玩爱好者,他收藏了很多瓶瓶罐罐. 有一天,他要将他的宝贝们一字排开, 摆放到一个长度为L的展台上. 已 ...
- myeclipse导入工程 Some projects cannot be imported because they already exist in the workspace
问题描述: 1 第一次从外部导入工程或者新建工程,成功: 2 删除该工程,但是没有选择delete project contents on disk 3 再次需要该工程,导入该工程时出现警告:Some ...
- 用MyEclipse 打包JAR文件
用MyEclipse 将自己定义标签打成JAR包 1.新建一个javaproject 2.将标签有关的java代码拷贝到新建javaproject的一个包中,这时会报错 ...
- Android TextView 横向滚动(跑马灯效果)
Android TextView 中当文字比較多时希望它横向滚动显示,以下是一种亲測可行的方法. 效果图: 1.自己定义TextView,重写isFocused()方法返回true,让自己定义Text ...
- pintos操作系统thread部分的实现
pintos是斯坦福大学自己开发的一个教学用操作系统.里面的代码给我们留了很多坑.我们的目标就是解决这些坑!详细的实现大家能够看看这篇blog,尽管我的代码并非所有跟着他写的,可是这确实是一篇非常好地 ...
- STM32IAP升级-----编写IAP升级遇到的问题总结
IAP的源代码等资料我上传了,压缩包内有12个文件.,http://download.csdn.net/detail/f907279313/7524849(要积分的辛苦收集的你们就给点积分吧) 还有还 ...