黑马程序员——IOS基础(Foundation框架一)

来源:互联网 发布:ov7670摄像头数据手册 编辑:程序博客网 时间:2024/06/08 00:38

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

1 认识Foundation框架

      框架是有许多类、方法、函数以及文档按照一定的规则组织起来的集合,以便于程序员更加方便、迅速的开发程序。

      cocoa程序编写主要用到2个框架Foundation和ApplicationKit(UIKit)。其中Foundation框架主要定义了一些基础类,供程序员来使用,而Application Kit主要是一些用户界面设计的类,用于Mac开发使用此库。Foundation框架中的所有类都继承自NSObject这个对象。

       作为通用的面向对象的函数库,Foundation提供了字符串,数值的管理,容器及其枚举,以及一些其他的与图像用户界面没有直接关系的功能。其中用于类和常数的“NS”前缀来自于Cocoa的来源,NextSTEP。它可以在Mac OX X和iOS中使用。

2、数字对象的常用处理方法

      由于基本数据类型,它们不是对象,因此,不能向它们发送消息。然而有时也需要将他们当做对象来处理。比如,我们需要把基本类型放入集合中(在cocoa中集合只能存放对象,无法存放基本数据类型),那么这时我们需要将基本类型转换为数字对象。OC中提供了数字对象“NSNumber”可以将基本数据类型“包装”成对象,这样我们就可以将数据类型来处理了。

数字对象的初始化:

//  类方法创建数字对象

int number = 10;

NSNumber*intNumber = [NSNumber numberWithInt:number];

BOOL isBool =YES;

NSNumber*boolNumber = [NSNumber numberWithBool:isBool];


// 实例方法创建数字对象

float pi = 3.14;

NSNumber*piNumber = [[NSNumber alloc] initWithFloat:pi];

char character ='a';

NSNumber *cNumber= [[NSNumber alloc] initWithChar:character];


数字对象的转化:

//  还原成基本数据类型

int month =[intNumber intValue];

BOOL isOpen =[boolNumber boolValue];

float length =[piNumber floatValue];

char firstName =[cNumber charValue];

3、字符串的基本概念和常用处理方法

           在Foundation框架中,提供了NSString类,用于处理字符串对象。在C语言中字符串在一对引号中表示。OC是C语言的一种延展,换句话说,OC语言是建立在C语言的基础上的(C的基础上添加了面向对象的内容,smalltalk语言)。因此,为了区别两者的字符串,OC语言的字符串必须以@开头,引号当中则是字符串的内容,如@“abc”。此外,NSString对象,一旦被创建,就不可以更改。如若需要一个可以更改的字符串对象,需要创建NSMutableString实例。

字符串对象的创建:

创建一个字符串

NSString *string= @"这是一个字符串常量";

创建一个空的字符串

NSString *string1= [[NSString alloc] init];

NSString *string2= [NSString string];

快速创建一个字符串

NSString *string= [[NSString alloc] initWithString:@"快速创建字符串"];

NSString *string= [NSString stringWithString:@"快速创建一个字符串"]


比较字符串对象

测试字符串是否为同一个对象:

NSString*string1 = [[NSString alloc] initWithFormat:@"test"];

NSString*string2 = [[NSString alloc] initWithFormat:@"test"];

if (string1 ==string2) {

    NSLog(@"测试两个字符串是否为同一个对象");

}

比较字符串的大小:

NSString*string1 = [[NSString alloc] initWithFormat:@"a"];

NSString*string2 = [[NSString alloc] initWithFormat:@"b"];

NSLog(@"[string1 caseInsensitiveCompare:string2] : %ld", [string1 caseInsensitiveCompare:string2]);

求字符串的长度:

NSString*string1 = [[NSString alloc] initWithFormat:@"string length"];

NSUInteger*length = [string1 length];


字符串的转换

改变字符串大小写:

NSString*hello = @'"hello WORLD";

NSLog(@“%@”,[hello uppercaseString]);  //全部大写

NSLog(@"%@",[hello lowercaseString]);  //全部小写

NSLog(@"%@",[hello capitalizedString]);  // 首字母大写,其他字母小写

将字符串转换成基本数据类型:

NSString*string = @"2.467";

NSLog(@"%d",[string boolValue]);  //转换成BOOL类型

NSLog(@"%f",  [string floatValue]);  //转换成浮点型

NSLog(@"%f",  [string doubleValue]); //转换成双精度型

NSLog(@"%d",  [string intValue]);   //转换成整型

将字符串转换为数组:

NSString*string = @"One Two Three Four";

NSArray *array= [string componentsSeparatedByString:@" "];

 

字符串的截取与拼接

截取字符串

NSString*string = [[NSString alloc] initWithFormat:@"abcdef"];

// 从字符串的开头一直截取到指定的位置,但不包括该位置的字符

NSString*string1 = [string substringToIndex:2];

// 以指定位置开始(包括指定位置的字符),并包括之后的全部字符

NSString*string2 = [string substringFromIndex:2];

NSRange rang;

rang.location= 2;

rang.length =2;

NSString*string3 = [string substringWithRange:rang];

拼接字符串

NSString *str1= @"1", *str2 = @"2";

NSString*string = [[NSString alloc] initWithFormat:@"这时拼接:%@ and%@", str1, str2];

NSString*string1 = [str1 stringByAppendingFormat:@"%@", str2];

NSString*string2 = [str1 stringByAppendingString:str2];

 

查询字符串

NSString *link= @"asdastarget=_blankddasd";

NSRange range= [link rangeOfString:@"target=_blank"];

if(range.location != NSNotFound)

{

    NSLog(@"string 找到了");

}

 

可变字符串对象

插入字符串

NSMutableString*str = [NSMutableString stringWithString:@"字符串"];

[str insertString:@"可变"atIndex:0];

删除字符串

NSMutableString*str = [NSMutableString stringWithString:@"字符串"];

[strdeleteCharactersInRange:NSMakeRange(1, 2)];

替换字符串

NSMutableString*str = [NSMutableString stringWithString:@"字符串"];

[strreplaceCharactersInRange:NSMakeRange(0,2) withString:@"羊肉"]


------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

0 0
原创粉丝点击