天天看点

OC--第四讲

1.Declared  in声明在什么头文件里

   inherits from 继承自

   Conforms to 遵循什么协议

   Framework   属于哪个框架

   Availability    什么时候可用的

   Related  documents 相关文档

   Sample   code  示例代码

2.NSString  不可变的字符串类,NSString对象创建以后,内容和长度不能够更改

hasPrefix 比对前缀

hasSuffix 比对后缀

isEqualToString 是否相等

(NSRange)rangeOfString:(NSString *)aString; 搜索字符串的范围

     // 搜索字符串的范围   //   NSString  *sourceStr = @" 蓝欧科技有限公司 "; //    NSRange range = [sourceStr rangeOfString:@" 蓝欧 "]; //    NSLog(@"%lu,%lu",range.location,range.length);

(NSString *)substringWithRange:(NSRange)range; 截取字符串

     // 截取字符串     NSString   *subStr = @" 蓝欧科技有限公司 " ;    NSRange range = { 0 , 4 };    NSString *substring1 = [subStr substringFromIndex : 3 ];    NSString *substring2 = [subStr substringToIndex : 6 ];    NSString *substring = [subStr substringWithRange :range];    NSLog ( @"%@" ,substring1);    NSLog ( @"%@" ,substring2);    NSLog ( @"%@" ,substring);

//拼接字符串

 (NSString*)stringByAppendingString:(NSString*)aString;

     // 拼接字符串     NSString *str1 = @" 北京 " ;    NSString *str2 = @" 欢迎你 " ;    NSString *str4 = @" 啊啊啊啊!!! " ;    NSString *str3 = [str1 stringByAppendingString :str2];    NSString *str5 = [str1 stringByAppendingFormat : @"%@%@" ,str2,str4];    NSLog ( @"%@" ,str3);    NSLog ( @"%@" ,str5);    return 0 ; }

   // 字符串替换     NSString *str1 = @" 北京欢迎你啊啊啊啊!!! " ;    NSRange range = [str1 rangeOfString : @" 北京 " ];    NSString *newStr = [str1 stringByReplacingCharactersInRange :range withString : @" 蓝欧 " ];    NSLog ( @"%@" ,newStr);

     // 字符串与数值类型转换     int number  = 3 ;    NSString *numberstr = [[NSString alloc]initWithFormat:@"%d",number ];    NSLog(@"number = %@",numberstr);       NSString *numStr = @"9";    int num = [numStr intValue];    NSLog(@"num = %d",num);

// 大小写转换

    NSString *str = @"AbCdEfG";    NSString *newStr = [str uppercaseString];// 把小写变大写     NSString *newStr1 = [str lowercaseString];// 把大写变成小写     NSLog(@"%@,%@",newStr,newStr1);            NSString *newStr2 = [str capitalizedString];// 首字母大写,其余小写

    NSLog(@"%@",newStr2);

  // 字符串比较     NSString *str1 = @"text" ;    NSString *str2 = @"rest" ;    int result = [str1 compare :str2]; //str1-str2     NSLog ( @"%d" ,result);

3.//NSMutableString的用法

    NSMutableString *str = [[ NSMutableString alloc ] initWithCapacity : 10 ];    [str setString : @"121325943132681324523170" ];    NSLog ( @"%@" ,str);        NSRange range = { 0 , 24 };    NSUInteger textNumber = [str replaceOccurrencesOfString : @"132" withString : @"text" options : 4 range :range]; // 用 text 替换 132 在 rangge 范围内     NSLog ( @"%lu,%@" ,textNumber,str);

    NSMutableString *str1 = [[ NSMutableString alloc ] initWithCapacity : 10 ];

    [str1 setString : @" 测试字符串 123" ]; // 初始化方法 1     NSMutableString *str2 = [[ NSMutableString alloc ] initWithFormat : @" 测试字符串 " ]; // 初始化方法 2         [str1 appendString : @" 测试字符串 " ]; // 拼接字符串     [str1 insertString : @"irougo" atIndex : 5 ]; // 可变字符串插入字符串     NSRange range = { 0 , 4 };    [str1 deleteCharactersInRange :range]; // 删除字符串     NSLog ( @"%@" ,str1);

4.NSArray  不可变数组类    容器类,管理的事一组对象类型的数据

  数组的第一个索引是0,有序的。

  数组中存储的元素必须是对象,类型任意;

  1)

      // 不可变数组

    NSArray *array = [[ NSArray alloc ] initWithObjects : @"1243" , @"3454r56" , nil ]; // 初始化方法 1 (对象实例化方法)     NSArray *array1 = [ NSArray arrayWithArray :array]; // 初始化方法 2 (便利构造器)     NSInteger count = [array count ]; // 求数组中元素的个数     NSLog ( @"%lu" ,count);    NSInteger num = [array indexOfObject : @"1243" ]; // 根据元素找对应索引     NSLog ( @"%lu" ,num);    for ( int i = 0 ; i<count; i++) {        id object = [array objectAtIndex :i]; // 根据索引找对应的元素         NSLog ( @"%@" ,object);    }

   2)

       // 可变的数组 NSMutableArray

    NSMutableArray *array = [[ NSMutableArray alloc ] initWithCapacity : 5 ];    // 添加元素     [array addObject : @"wo sakjf df" ];    [array addObject : @"sdgjl;dk" ];    [array addObject : @"sdgjl;dk" ];    [array addObject : @"sdgjl;dk" ];    [array addObject : @"sdgjl;dk" ];    [array addObject : @"sdgjl;dk" ];    [array addObject : @"sdgjl;dk" ];    // 可变数组插入元素     [array insertObject : @" 蓝欧 " atIndex : 0 ];    // 删除元素 //    [array removeObject:@" 蓝欧 "]; //    [array removeObjectAtIndex:1]; //    [array removeObjectIdenticalTo:@"sdgjl;dk"];// 删除和他相同的所有的元素     // 替换元素     [array replaceObjectAtIndex : 1 withObject : @"sdhfdmjhvkdbdjvbbv" ];    // 交换元素     [array exchangeObjectAtIndex : 0 withObjectAtIndex : 1 ];        NSLog ( @"%@" ,array);

5.     //NSNumber 数值类     char ch = 'A' ;    NSNumber *num = [[ NSNumber alloc ] initWithChar :ch];    char c = [num charValue ];    NSLog ( @"%c" ,c);    NSLog ( @"%@" ,num);

总结:

1.可变对象通常是不可变对象的子类,包含父类所有的方法,并具有增删改的功能

2.可变对象的增删改都是对自身的操作。不可变对象的增删改都会生成新的对象,原对象不变。

3.数组只能存储对象类型的数据,有序,考小标检索对象。