黑马程序员——OC---Foundation

本文详细介绍了Objective-C的基础框架,包括不可变字符串(NSString)的使用方法及其注意事项、字符串的操作如比较、截取及大小写转换等。同时,还探讨了数组(NSArray)和字典(NSDictionary)的基本操作及可变类型(MutableArray, MutableString)的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

一 简介

OC中一个框架就是一个软件包,他包含有很多的类,其中基础框架,也就是foundation框架是为所有程序开发提供的基础框架,其中的类包括:字符串,数组,字典,集合等。所有的基础框架上的类都同用户界面无关,为了使用基础框架,需要在程序中导入头文件:#import <Foundation/Foundation.h>

二 NSString 字符串的使用

1.NSString对象,一旦创建,就不可以进行再改变,如需要一个可以更改的字符串对象,需要创建NSString的可变子类NSMutableString实例。

2.字符串的创建

2.1创建一个字符串常量: NSString *string=@”this is NSString”;

2.2创建一个空字符串:

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

NSString *string=[NSString string];

3.快速创建字符串

   NSString *string=[[NSStringalloc]initWithString:@“字符串”];

   NSString *string=[NSStringstringWithString:@”字符串”];

4.创建格式字符串   initWithFormat  , stringWithFormat 方法

5.小注意

       常量没有引用计数,常量创建的字符串无需要管理内存

6.比较两个字符串

6.1 “==”表示比较两个字符串的地址是否相同;

     eg:    if(string1== string2){  //code...

             }

6.2 ”isEqualToString”表示比较两个字符串的值是否相同;

      Eg : if(string1isEqualToString:string2){   //code....

          }

   6.3 通过类方法创建字符串(不需要管理内存的)

NSString *string=[NSString stringWithCString:“abc“ encoding:

NSUTF8StringEncoding];

6.4通过实例方法创建字符串(需要手动管理内存)

  NSString *string=[[NSStringalloc]initWithFormat:@””];

6.5 通过追加的方式创建字符串  stringByAppendingString 方法

6.6 NSComparisonResult re=[string1 compare:string2];  //按字母排序进行比较

7截取字符串

  7.1通过类方法:substringFormIndex:下标   //从指定的位置截取到末尾

  7.2substringToIndex:下标    //从开始位置截取到指定的下标位置

  7.3截取指定位置(NSRange (loation ,length))

          Eg:NSRange rg={4,5};   //表示从4的位置开始,截取5个长度

          等价于 NSRange rg=NSMakeRange{4,5};

         //调用截取方法  [string1  substringWithRange: rg];

         rangeofstring   //得到字符串的位置

8.大小写之间的转换

8.1 大---> 小        lowercaseString方法

8.2小----->大        uppercaseString方法

9.可变字符串NSMutableString

   9.1.如何创建一个可变字符串

  NSMutableString *str=[[NSMutableString alloc]initWithCapacity:0];

   9.2.重新设置   setString

   9.3 根据下标插入字符串 insetString:@" " atIndex:下标值

   9.4 删除指定位置的字符串

   NSRangege=NSMakeRange(4,5);

   [string1deleteCharactersInRange:ge];

三 数组(NSArray)    

   1.通过类方法定义数组(无需管理内存),nil表示数组的结束

arrayWithObject:......,nil  ;

    2.通过初始化方法定义数组

   initWithArray    (通过数组创建数组)

   initWithObject    (通过对象创建数组)

 3.如何操作数组       

   3.1根据下标获取数组的元素

   objectAtIndex:下标

   3.2通过元素获取对应的下标

    indexOfObjects:@"字符",返回NSInteger

   3.3获取最后一个元素:lastObject

   3.4获取数组的长度:count

  4.循环操作数组

   4.1通过枚举

   NSEnumerator  *enu=[arry1objectEnumerator];

    id obj;

   While((obj==[enu nextObject]))

    {

       //code.......

    }

   4.2循环    for

   4.3 for in

  for(NSString *str in array)

   {

      //code.....

   }

 4.4反转枚举                reverseObjectEnumerator

 4.5排序

  sortedArrayUsingSelector:@"selector(compare)"

5.可变数组(NSMutableArray)

      5.1添加元素(末尾) addObject:

      5.2插入元素

      [array1 insertObject:@" "atIndex:下标];

      5.3移除元素

      根据下标移除元素:removeObjectIndex:

      移除最后一个元素:removeLastObject:

      5.4替换元素(根据下标替换)

      replaceObjectAtIndex:下标   withObject:@"替换的字符串";

      通过下标交换:exchangeObjectAtIndex: j  withObjectAtIndex:j+1;

      5.5查找

      containsObject:@"要查找的字符";

四 字典(NSDictionary)

1.如何创建字典?

     NSMutableDictionary*dictionary=[NSMutableDictionary dictionaryWithCapacity: 个数];

  dictionaryWithObjectsAndKey    将元素添加到字典中

2.如何操作字典?

2.1通过键得值 objectForKey

2.2 设置字典(设置没有的键是添加,反之修改)

   setObject:@"  " forKey:@" "

2.3移除指定键值数据     removeObjectForKey

    移除所有的数据      removeAllObjects

2.4 得到字典的个数   count

2.5 循环字典

   2.5.1  通过枚举  keyEnumerator /ObjectEnumertor

   2.5.2  通过数组 NSArray *array=[ dic allkeys];  /allValues

          根据键获取值:objecForKey

 五 NSData 字节类

       1.创建 path

       2.将文件读入data对象   initWithContentsofFile:path;

       3.data对象转换为字符串  initWithData:data ;

       4.将字符串转换为data    [stringdataUsingEncoding:  ];

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值