oc Foundation框架 Number类 Array类

来源:互联网 发布:土方平衡计算软件 编辑:程序博客网 时间:2024/06/07 12:51

Cocoa是苹果公司为Mac OS X所创建的原生面向对象的API,是Mac OS X上五大API之一(其它四个是CarbonPOSIXX11Java)。

APIApplication Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节

Cocoa Touch由苹果公司提供的软件开发api,用于开发 iPhone\iPod\iPad上的软件。也是苹果公司针对iPhone应用程序快速开发提供的一个类库。此库以一系列框架库的形式存在,支持开发人员使用用户界面元素构建图像化的事件驱动的应用程序

Cocoa是苹果公司为Mac OS X所创建的原生面向对象的API,是Mac OS X上五大API之一(其它四个是CarbonPOSIXX11Java)。

一个框架是由类、方法、函数和文档组合在一起构成的集合,使得程序的开发更容易

数字类、字符串类还有一些集合类(如数组、字典等),当然还有时间日期类,还可以实现与文件的交互

  •     AppKit框架中包含的类和方法等可以用于开发交互式的图形应用程序。我们可以利用框架中的相关类或方法对文本框、工具栏、菜单、表等进行操作。

在Mac OS X的开发中Cocoa提供了两个基本框架:Foundation和AppKit,在移动设备的开发中CocoaTouch提供了两个基本的框架:Foundation和UIKit框架

  • υFoundation框架中的类的主要有以下几种:
  • λ数据存储类。像NSData/NSString/NSArray/NSDictionary.NSSet等
  • λ文本和字符串类。像NSCharacterSet/NSString等
  • λ时间日期类。像NSDate/NSTimeZone/NSCalendar等
  • λ应用程序通知类。NSNotification/NSNotificationCenter等
  • λ对象的创建和处理类。如NSAutoreleasePool
  • λ对象的空间分配和持久化。NSPropertyListSerialization/NSCoder等
  • λ操作系统服务类。NSFileManager/NSThread等

URL加载系统类。NSURL等


NSNumber类

 /*NSNumber    */

        NSNumber *intNumber=[NSNumbernumberWithInt:100];//把一个整数存储到NSNumber对象中(类方法)

       NSLog(@"%@",intNumber);


       int myInt=[intNumber intValue];

        NSLog(@"%d",myInt);//把存储到NSNumber中的数据取出来


       NSNumber *myNumber=[[NSNumberalloc]initWithInt:200];//用实例化方法来存储数据(实例方法)

       NSLog(@"%@",myNumber);


       NSLog(@"%d",[intNumberisEqualToNumber:myNumber]);//判断两个数字类对象是否相等

        NSLog(@"%ld",[intNumbercompare:myNumber]);//比较出两个对象的大小关系(大于:返回NSOrderedDescending,1(枚举值),等于:返回NSOrderedSame,0,小于:NSOrderedAscending,-1);


 //      NSNumber *num1=[NSNumber numberWithInt:10];

//        [num1 initWithInt:20];//error!! 无法重新初始化之前创建好的对象

   //     num1=[NSNumber numberWithInt:30];//但是可以让num1指向另外一个对象


    }


Array类

ObjC中没有模板,所以不能用模板作为容器了,但是可以使用对象(像数组,字典等)作为容器,并且ObjC的容器中只能盛放对象,不能盛放简单类型数据


  //用类方法实例方法 创建一个带初始值的数组

        NSArray *arr1=[NSArrayarrayWithObjects:@"Hello",@"world",@"beijing",@"tiananmen",nil];

       NSArray *arr01=[[NSArrayalloc]initWithObjects:@"hi",@"i",@"am",@"a",@"boy",[NSNullnull],nil];


        //使用containsObject方法很常见,例如:判断某一个元素是否在数组中,但使用时

        //需要注意:containsObject内部在比较对象是否相等时采用的是地址比较,即两个不同地址而内容完全相同的对象采取containsObj较结果是No

       NSLog(@"iscontain:%hhd",[arr01containsObject:@"i"]);


       //数组个数

       NSLog(@"%ld",[arr1count]);

       NSLog(@"%@",arr01);

        //访问指定下标的元素

       NSLog(@"%@",[arr1objectAtIndex:0]);

        //返回新的array对象

       NSArray *arr02= [arr1 arrayByAddingObject:@"gugong"];

       NSArray *arr03=[arr01 arrayByAddingObjectsFromArray:arr1];

       NSLog(@"%@,%@,%@",arr02,arr03,arr01);

        // 查找摸个对象的索引

       if([arr1 indexOfObject:@"Hello"]==NSNotFound)    {

           NSLog(@"没找到");

        }

       else

           NSLog(@"%ld",[arr1indexOfObject:@"Hello"]);

        

        //根据指定的字符串连接数组元素

       NSString *str1=[arr01 componentsJoinedByString:@"oo"];

       NSLog(@"%@",str1);


        //创建一个指定容量的数组

        NSMutableArray *arr2=[NSMutableArrayarrayWithCapacity:12];

       //添加元素

        [arr2addObject:@"tuesday"];

       //查找元素

        [arr2insertObject:@"monday"atIndex:0];

        //移除指定下标元素

        [arr2 removeObjectAtIndex:0];

       //添加数组

        [arr2addObjectsFromArray:arr01];

        NSLog(@"addObjectFromArray:%@",arr2);

        //指定索引替换对象

        [arr2 replaceObjectAtIndex:0withObject:@"=="];

        NSLog(@"repleaseObjectAtIndex:%@",arr2);

             /*遍历数组方法1*/

       for (int i=0; i<[arr1count]; ++i) {

           NSLog(@"%@",[arr1objectAtIndex:i]);

        }

        /*遍历数组方法2*/

       for(id obj in arr1)

        {

           NSLog(@"%@",obj);

        }

       //删除全部对象

        [arr2removeAllObjects];

        NSLog(@"removeAllObject:%@",arr2);

        

       /*数组排序*/

        [arr1sortedArrayUsingSelector:@selector(compare:)];

          NSLog(@"排序=%@",arr1);









0 0