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 ...
随机推荐
- Extjs iconCls 的用法
如何在按钮中加icon: 1.在Extjs中 { xtype:'button', text:'学生档案', iconCls:'file', }, 2.在css中写: .file{ background ...
- 有效解决ajax传中文时,乱码的情况,php处理接收到的值
在抽奖环节时,需把获奖名单通过ajax的post方式传输给php后台进行储存,但是php接收到的值确是乱码.在百度之后并没有找到合适的解决方法. 则使用js的encodeURI函数可以有效解决,但不知 ...
- BZOJ 1176/2683 Mokia (三维偏序CDQ+树状数组)
题目大意: 洛谷传送门 三维偏序裸题.. 每次操作都看成一个三元组$<x,y,t>$,表示$x,y$坐标和操作时间$t $ 询问操作拆成$4$个容斥 接下来就是$CDQ$了,外层按t排序, ...
- webpack实现模块化打包
webpack打包应用和实现 1)安装webpack $ npm install webpack webpack-cli --save-dev 2)添加配置文件 webpack.config.js 3 ...
- HDU 4311 Contest 2
求的是曼哈顿距离.可以把X,Y的距离分开来求.其中,求X.Y的距离可以通过排序后递推的方式求出值的. #include <iostream> #include <algorithm& ...
- 实践补充 Installing Tomcat 7.0.x on OS X
我的 Mac 下是1.6的 SDK,下载 Tomcat 8.0 执行后,訪问 http://127.0.0.1:8080 并无反应,并且关闭脚本会报错 : Unsupported major.mino ...
- call to OpenGL ES API with no current context 和Fatal signal 11
近日在用cocos2dx3.4的时候使用了JNI调用,发现一个现象 当不使用jni的时候全然正常.使用了jni后回去的全部文字都变成黑块,而且有概率程序崩溃.附带出了两个log call to Ope ...
- Android开发工具---SQLiteManager插件
Android开发工具---SQLiteManager插件 效果图例如以下: 平时在开发过程中查看数据库都要把数据库文件导出来,然后再用其它工具打开,SQLiteManager插件则给予我们一些便利. ...
- 【Oracle学习笔记】
内容主要包括: (1)三种循环及其简化 (2)游标的使用 (3)异常处理 (4)存储过程 (5)存储函数 (6)触发器 (7)其它pl/sql操作 ---------------loop循环定义变量- ...
- 弹性ScrollView,和下啦刷新的效果相似 实现下拉弹回和上拉弹回
今天做了一个弹性ScrollView,和下啦刷新的效果类似,我想这个非常多需求都用的这样的效果 事实上这是一个自己定义的scrollView,上代码.这是我写在一个公共的组件包里的 package c ...