1. #import <Foundation/Foundation.h>
  2.  
  3. int main(int argc, const char * argv[]) {
  4. @autoreleasepool {
  5. /**
  6. * NSArray 数组,可以存储任何类型的OC对象
  7. NSEnumerator,
  8. NSDictionary 字典,键值对
  9. NSSet 数学的集合
  10. */
  11.  
  12. //1.如何创建一个NSArray,即初始化
  13. NSArray *names=[NSArray arrayWithObjects:@"张三",@"李四",@"王五", nil];
  14. // NSLog(@"%@",names);
  15.  
  16. // NSInteger a=[names count];
  17. //2.集合元素的个数
  18. // NSLog(@"元素的个数是=%ld",a);
  19.  
  20. //3.获取集合的指定下标的元素
  21. // NSString *name=[names objectAtIndex:1];
  22. // NSLog(@"%@",name);
  23.  
  24. //4.循环遍历
  25. // for (int i=0; i<[names count]; i++) {
  26. // NSString *name=[names objectAtIndex:i];
  27. // NSLog(@"%@",name);
  28. // }
  29.  
  30. // for (int i=0; i<[names count]; i++) {
  31. // NSLog(@"%@",names[i]);
  32. // }
  33. // 快速枚举
  34. // for (NSString *name in names) {
  35. // NSLog(@"%@",name);
  36. // }
  37.  
  38. }
  39. return ;
  40. }

把对象变成NSArray输出

  1. #import <Foundation/Foundation.h>
  2.  
  3. @interface Student : NSObject
  4. /**
  5. * 属性,姓名,年龄
  6. */
  7. @property(strong,nonatomic) NSString *name;
  8. @property(assign,nonatomic) int age;
  9. -(instancetype)initWithName:(NSString *) name andAge:(int) age;
  10. -(void) show;
  11. @end
  1. #import "Student.h"
  2.  
  3. @implementation Student
  4. //@synthesize name,age;
  5. - (instancetype)initWithName:(NSString *)name andAge:(int)age
  6. {
  7. self = [super init];
  8. if (self) {
  9. _name=name;
  10. _age=age;
  11. }
  12. return self;
  13. }
  14. -(void)show{
  15. NSLog(@"%@,%d",_name,_age);
  16. }
  17. /**
  18. * 描述信息方法
  19. *此方法 是 对父类的方法重新实现,返回一个字符串对象,此方法,由对象自动调用
  20. 《方法重写》
  21. 在父类和子类中相同名称的方法,实现不同
  22. * @return 描述信息
  23. */
  24. -(NSString *)description{
  25. return [NSString stringWithFormat:@"%@,%d",_name,_age];
  26. }
  27. @end
  1. #import <Foundation/Foundation.h>
  2. #import "Student.h"
  3. int main(int argc, const char * argv[]) {
  4. @autoreleasepool {
  5. // Student *stu1=[[Student alloc] initWithName:@"a" andAge:22];
  6. // Student *stu2=[[Student alloc] initWithName:@"b" andAge:21];
  7. // Student *stu3=[[Student alloc] initWithName:@"c" andAge:20];
  8. Student *stu1=[[Student alloc] init];
  9. stu1.name=@"qll";
  10. stu1.age=;
  11. Student *stu2=[[Student alloc] init];
  12. stu2.name=@"zy";
  13. stu2.age=;
  14. Student *stu3=[[Student alloc] init];
  15. stu3.name=@"zyj";
  16. stu3.age=;
  17. //创建集合并添加学生的类型的对象当元素
  18. NSArray *arr=[NSArray arrayWithObjects:stu1,stu2,stu3,nil];
  19.  
  20. //遍历集合元素 通过快速枚举实现
  21. // for ( Student *a in arr){
  22. //// NSLog(@"%@",[a description]);
  23. // NSLog(@"%@",a);
  24. // }
  25.  
  26. //id identity 标识 任意类型,不用加上 *
  27. for (id stu in arr) {
  28. NSLog(@"%@",stu);
  29. }
  30. }
  31. return ;
  32. }

OC中NSArray的更多相关文章

  1. OC中NSArray的使用

    不可变数组类容器类,管理一组对象类型的数据.   元素是有序的,索引值从0开始  数组中存储的元素必须是对象,类型任意.   创建数组对象,使⽤用实例初始化或便利构造器.获取元素个数.根据索引值获取对 ...

  2. OC中的NSNumber、NSArray、NSString的常用方法

    和C语言不同,在Objective-C语言中,有单独的字符串类NSString.C语言中,string是由 char(ASCLL码)字符组成 OC中,字符串是由unichar(Unicode)字符组成 ...

  3. OC中Foundation框架之NSArray、NSMutableArray

    NSArray概述 NSArray是OC中的数组类 NSArray特点 )只能存放任意OC对象,并且是有顺序的 )不能存放非OC对象,比如int/float/double/char/enum/stru ...

  4. OC中数组类NSArray的详解,常用属性和方法(一)

    数组是一个有序的集合,OC中的数组只能存储对象类型, 但是对于对象的类型没有限制. 通过下标访问数组元素,下标从0开始. NSA

  5. Oc中的数组

    ========================== 数组 ========================== 一.认识数组 oc中可以把NSObject对象的子类放到数组这个集合中,但是int.f ...

  6. OC中的指针

    NSError *err = nil; NSError __strong **error = &err; //因为在oc中,通过* *err 创建的指针是用__strong修改的,所以要一致, ...

  7. [BS-18] 对OC中不可变类的理解

    对OC中不可变类的理解 OC中存在很多不可变的类(如NSString,NSAttributedString,NSArray,NSDictionary,NSSet等),用它们创建的对象存在于堆内存中,但 ...

  8. OC中@property属性关键字的使用(assign/weak/strong/copy)

    OC中@property属性关键字的使用(assign/weak/strong/copy) 一.assign 用于 ‘基本数据类型’.‘枚举’.‘结构体’ 等非OC对象类型 eg:int.bool等 ...

  9. OC中NSDictionary(字典)、NSMutableDictionary(可变字典)、NSSet(集合)、NSMutableSet(可变集合)得常用方法

    字典用于保存具有映射关系数据的集合 一个key—value对认为是一个条目(entry),字典是存储key—value对的容器 与数组不同,字典靠key存取元素 key不能重复,value必须是对象 ...

随机推荐

  1. Linux curl使用简单介绍

    在两台新搬迁的微信服务器上执行命令: curl -H "Content-Type: application/json" -d '{"partner_no":&q ...

  2. CSS选择器、优先级与匹配原理

    为了分析Bootstrap源码,所以的先把CSS选择器相关的东东给巩固好 废话就不多说了 CSS 2.1 selectors, Part 1 计算指定选择器的优先级:重新认识CSS的权重 标签的权值为 ...

  3. [IR] Compression

    关系:Vocabulary vs. collection size Heaps’ law: M = kTbM is the size of the vocabulary, T is the numbe ...

  4. IP Failover Setup using Keepalived on CentOS/Redhat 6

    source url:http://tecadmin.net/ip-failover-setup-using-keepalived-on-centos-redhat-6/ Keepalived is ...

  5. [数据库]sql之行顺序

    这个文章主要是防止我忘了sql的执行顺序,解释的东西我都没怎么看懂.数据库渣如我- 逻辑查询处理阶段简介 FROM:对FROM子句中的前两个表执行笛卡尔积(Cartesian product)(交叉联 ...

  6. 软件测试之黑盒测试:打着手电寻找bug

    功能测试,简单的理解就是黑盒测试,就是检测黑盒子,找到里面存在的缺陷. 功能测试新人学习计划: 1. 对于产品的学习---站在客户的角度学习产品.看待问题 测试人员不是简单地按照开发人员的设计文档去撰 ...

  7. ThreadLocal的基本原理与实现

    一.概念 首先,ThreadLocal并不是一个Thread,这个类提供了线程局部变量,这些变量不同于它们的普通对应物,因为访问某个变量的每个线程都有自己的局部变量,它独立于变量的初始化副本. 二.基 ...

  8. 怎样在C#中从数据库中读取数据(数据读取器)

    实现在C#中通过语句,查询数据库中的数据 SqlConnection con = null; //创建SqlConnection 的对象 try    //try里面放可能出现错误的代码        ...

  9. 在WPF中使用文件夹选择对话框

    开发中有时会想实现"选择某个文件夹"的效果: 在WPF中,使用Microsoft.Win32.OpenFileDialog只能选择文件,FolderBrowserDialog只能用 ...

  10. 从零开始学习Linux(cp 命令)

    功能: 复制文件或目录说明: cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中.若同时指定多个文件或目录, ...