Objective-c中Foundation中的几个常用类1

时间:2023-01-07 19:55:25

 使用XCode的提示功能,只需要记住类的名字及常用的函数就好了,其他的函数可以根据提示来查看,按ESC键可以查看该类的函数        

 Foundtion框架 

         Cocoa程序的编写主要要用到两个框架,FoundationApplicationKit(UIKit),其中Foundation框架主要定义了一些基础类,而ApplicationKit主要定义了一些用于Mac开发的几面基础类,而IOS的界面开发主要是用UIKitFoundation框架中的所有类都继承自NSObject,这就是所谓的上帝吧。Foundation主要提供了与图形用户界面没有直接关系的功能的一些类,比如:字符串、数值、容器集合等等相关的类。

         1、有关数字对象的处理

            把数字包装成数字对象

    int age = 24;
BOOL isMarry = NO;
float pi = 3.14f;
//使用类方法,其他的基本数据类型和如下两种方式相同
NSNumber *myAge = [NSNumber numberWithInt:age];
NSNumber *aboutMarry = [NSNumber numberWithBool:isMarry];
//使用初始化方法
NSNumber *aboutPi = [[NSNumber alloc]initWithFloat:pi];

            把数字对象再转换成基本数据类型

    age = [myAge intValue];
isMarry = [aboutMarry boolValue];
pi = [aboutPi floatValue];
 

         2、字符串的常见应用

            由于oc是基于c的,为了区别起见,oc中的字符串必须以@开头,@后引号内的类容为字符串本身内容

            NSString对象一旦创建就不能再修改,如果想创建一个可以修改的字符串对象,则使用NSMutableString,这里的NSSring好比java中的String类,而NSMutableString类好比javaStringBuffer

                //创建一个字符串        //方法一        NSString *name = @"Jim Green";        //方法二        //创建一个空字符串        NSString *name1 = [[NSString alloc]init];//实例方法                //创建非空字符串        NSString *name3 = [[NSString alloc]initWithString:@"Jim Green"];                       //有关创建格式化符字符串        NSString *myself = [[NSString alloc]initWithFormat:@"我是%@,今年%d岁,知道PI的值是%f",name3,age,pi];

有关字符串的比较:

 //以下打印结果为相等
NSString *str1 = @"niao";
NSString *str2 = @"niao";

if (str1 == str2) {

NSLog(@"相等");
}else
NSLog(@"不相等");

if ([str1 isEqualToString: str2]) {

NSLog(@"相等");
}else
NSLog(@"不相等");

//此处的打印结果也相等(在常量区创建)
NSString *str3 = [[NSString alloc]initWithString:@"ge"];
NSString *str4 = [[NSString alloc]initWithString:@"ge"];

if (str3 == str4) {

NSLog(@"相等");
}else
NSLog(@"不相等");

//此处打印也相等
if ([str3 isEqualToString: str4]) {

NSLog(@"相等");
}else
NSLog(@"不相等");

//********************************************************分界线
        //在堆区创建        NSString *str5 = [NSString stringWithFormat:@"ni%d",5];        NSString *str6 = [NSString stringWithFormat:@"ni%d",5];                //此处打印不相等        if (str5 == str6) {         NSLog(@"5相等6");         }else             NSLog(@"5不相等6");         //此处打印也相等        if ([str5 isEqualToString: str6]) {            NSLog(@"5相等6");         }else            NSLog(@"5不相等6");

         分界线以上的无论是==还是isEqualToString都是相等,分界线以下的==打印不相等,isEqualToString打印的是相等,这里用isEqualToString比较相等很容易理解,关于用等号比较

         那是因为用==比较的是对象指针的地址,而不是对象本身

         而分界线以上的对象都是在敞亮区创建的,所以用==比较是相等的

         而分解先以下的是在堆区创建的,所以用==比较是不相等的

         str5str6是在堆区创建了两个对象,所以对象的地址是不同的所以用==比较不同,而对象的内容是相同的,所以isEqualToString比较相同。


 比较字符串的大小

NSString *str7 = @"a";
NSString *str8 = @"b";
NSString * str9 = @"A";

NSLog(@"比较结果为:%@",[str7 compare:str8]?@"YES":@"NO");//比较结果为:YES
//忽略大小写
NSLog(@"忽略大小写1,%ld",[str7 caseInsensitiveCompare:str8]);//忽略大小写1,-1
NSLog(@"忽略大小写2,%ld",[str9 caseInsensitiveCompare:str7]);//忽略大小写2,0



相关文章