使用数组对象创建的数组功能非常强大,在Java语言或者C语言中定义的数组必须满足数组中的每一个元素必须是同样的类型。
而Objective-C语言可以在Array数组中放任意类型的objective-c的对象。有两点值得注意,一是只能放指向这个对象的指针,而不能直接放int ,char,double 等等;二是不能放nil。
使用NSArray关键字创建一个不可变的数组,一旦初始化完毕后这个数组的元素是不可以再动态地添加和删除。
[array count] : 得到这个对象数组的长度。
[array objectAtIndex:0]: 传入数组脚标的id 得到数据对象。
[array arrayWithObjects:xx,xx,xx,nil] :向数组对象初始化赋值。这里可以写任意对象的指针,结尾必须使用nil,标识为数组定义结束。
+ (id)array
WithObjects
:(id)firstObject, ...; //
nil
terminated
- (int)count;
- (id)objectAtIndex:(int)index; //
NSString *s1=[[myarray objectAtIndex: 0];
- (void)makeObjectsPerformSelector:(SEL)aSelector;
- (NSArray *)sortedArrayUsingSelector:(SEL)aSelector;
- (id)lastObject; // returns nil if there are no objects in the array (convenient)
NSArray *arr=[NSArray arrayWithObjects:@"one xiaowang",@"two xiaoli",@"three xiaotian",nil];
NSLog(@"arr count = %d ,%@",[arr count],[arr objectAtIndex:0]);
遍历数组中对象的方法有两种,一种称为普通遍历;另一种称为快速枚举遍历。
但apple认为前者效率低下且安全性不高,推荐使用后者即快速枚举法。
普通遍历方法
for (int i=0;i<[arr count];i++)
{
NSLog(@"普通遍历:i = %d 时的数组对象为: %@",i,[arr objectAtIndex: i]);
}
快速枚举遍历方法
for (NSObject *object in arr) {
NSLog(@"快速枚举遍历数组对象为: %@",object);
}
动态可变数组的管理方式和不可变数组类似。
NSMutableArray * arr=[NSMutableArray arrayWithCapacity:10];
[arr addObject:@"xiaoli"];
[arr addObject:@"xiaowang"];
[arr addObject:@"xiaotian"];
NSLog(@"arr count = %d ,%@",[arr count],[arr objectAtIndex:0]);
for (int i=0;i<[arr count];i++)
{
NSLog(@"普通遍历:i = %d 时的数组对象为: %@",i,[arr objectAtIndex: i]);
}
[arr removeObjectAtIndex:1];
for (NSObject *object in arr) {
NSLog(@"快速枚举遍历数组对象为: %@",object);
}
字典类的对象是使用方式同数组也类似
主要的方法为
+ dictionaryWithObjectsAndKeys: (id)firstObject, ...;
- (int)count;
- (id)objectForKey:(id)key;
- (NSArray *)allKeys;
- (NSArray *)allValues;
+ (NSMutableDictionary *)dictionary;
- (void)setObject:(id)anObject forKey:(id)key;
- (void)removeObjectForKey:(id)key;
- (void)removeAllObjects;
- (void)addEntriesFromDictionary:(NSDictionary *)otherDictionary;
NSDictionary *dict=[NSDictionary dictionaryWithObjectsAndKeys:@"name1",@"key1",@"name2",@"key2",nil];
for (NSString * str_key in [dict allKeys])
{
NSLog(@"key is %@",str_key);
}
for (NSString * str_val in [dict allValues])
{
NSLog(@"value is %@",str_val);
}
NSLog(@"value is %@ at %@",[dict objectForKey:@"key1"],@"key1");
NSMutableDictionary *dict2=[NSMutableDictionary dictionaryWithCapacity:10];
[dict2 setObject:@"name1" forKey:@"key1"];
NSLog(@"dict2 value is %@ at %@",[dict2 objectForKey:@"key2"],@"key2");
[dict2 setObject:@"name2" forKey:@"key2"];
NSLog(@"dict2 value is %@ at %@",[dict2 objectForKey:@"key2"],@"key2");
分享到:
相关推荐
是个人iOS开发初期对数组操作所做的笔记整理,包含了大部分NSArray和NSMutableArray操作方法
用objective-c实现全排列算法,用数组来保存全排列排列的结果
只要有可能,Objective-C总是使用动态的方式来解决问题。这意味着Objective-C语言不仅需要一个编译器,同时也需要一个运行时系统来执行编译好的代码。这儿的运行时系统扮演的角色类似于Objective-C语言的操作系统,...
Objective-C语言的许多决策可以在编译和运行时执行。只要有可能,它是动态的。这意味着Objective-C语言不仅需要一个编译器,还需要一个运行时系统来执行编译的代码。Runtime系统是一种用于Objective-C语言的操作系统...
《objective-c程序设计》通过大量的实例系统地介绍了objective-c语言的基本概念、语法规则、框架、类库及开发环境。读者在阅读《objective-c程序设计》后,可以掌握objective-c语言的基本内容,并进行实际的iphone/...
希望这个简单的Objective-C语言教程能够为你提供一个入门的起点。Objective-C是一种面向对象的编程语言,广泛应用于Mac OS和iOS开发。通过学习Objective-C的基本语法、类和对象、控制流程和方法等内容,你将能够编写...
中文名: Objective-C基础教程 作者: Mark Dalrymple Scott Knaster译者: 高朝勤 杨越 刘霞图书 分类: 软件 资源格式: PDF 版本: 扫描版 出版社: 人民邮电出版社 书号: ISBN: 9787115208774 发行时间: 2009...
《Objective-C 程序设计(第4版)》作者假设读者没有面向对象程序语言或者C语言(Objective-C基础)编程经验,因此,初学者和有经验的程序员都可以使用这本《Objective-C 程序设计(第4版)》学习Objective-C。...
用Objective-C语言实现了各种设计模式,收集各种例子,方便大家学习和普及设计模式。.zip用Objective-C语言实现了各种设计模式,收集各种例子,方便大家学习和普及设计模式。.zip用Objective-C语言实现了各种设计...
C语言主要知识点巩固(学习Objective-C 的前提),PPT格式。
Objective-C 是一种通用、面向对象的编程语言,广泛应用于 macOS 和 iOS 等苹果平台的开发中。它是 C 语言的超集,结合了 Smalltalk 式的消息传递机制和 C++ 的特性。Objective-C 是苹果公司采用的主要编程语言之一...
在windows系统下搭建Objective-C开发环境,由于公司要做iphone开发,个人学习objc(Objective-C)语法,所以在windows7下搭建了一个objc开发环境,现把自己整理的帮助文档拿来与大家分享,希望能对大家有所帮助。...
Objective-C是创建Mac OS应用和iPhone应用的主要语言,优雅的面向对象编程环境与C语言特性珠联璧合,造就了它的不俗表现。 本书全面而系统地讲述Objective-C语言的基础知识和面向对象编程的重要概念,结合实例...
elcome to Learn Objective- C on the Mac! This book is designed to teach you the basics of the Objective- C language. Objective- C is a superset of C and is the language used by many (if not most) ...
这是一个基于Objective-C语言的基础案例集。旨在用于给初学者快速了解Objective-C语言的语法。.zip
Objective-C是扩展C的面向对象编程语言,也是iPhone开发用到的主要语言。本书结合理论知识与示例程序,全面而系统地讲述Objective-C编程的相关内容,包括Objective-C在C的基础上引入的特性和Cocoa工具包的功能及其中...
Objective-C高级编程 iOS与OS X多线程和内存管理.pdf
资源里面包含Objective-C 2.0程序设计 原书中文版第2版及代码,还包含Effective Objective-C 2.0英文版完整的电子书