Foundation框架基础知识

本文介绍了Cocoa Foundation框架中的一些基本数据类型,如NSRange、NSPoint、NSSize和NSRect,详细讲解了如何使用NSMakeRange等构造函数。此外,还深入探讨了NSString类,包括创建字符串对象、转化操作以及常用的NSString方法。同时,简要提到了NSMutableString类的相关操作。

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

1.常用数据类型:
(1).NSRrange 创建范围结构体
结构体:
    typedef struct _NSRange{
              NSUInteger location;
              NSUInteger length;
          }NSRange;
NSMakeRange函数:
    NS_INLINE NSRange NSMakeRange(NSUIteger loc,NSUInteger len){
              NSRange r;
              r.location = loc;
              r.length;
              return r;
          }#实例演示:
        //NSRange类型的变量的创建方法。
        //1.直接创建变量,然后根据结构体成员访问语法,分别每一个成员赋值
        NSRange range;
        range.location = 2;
        range.length = 3;
        输出:
        NSLog(@"%lud,%lud",range.location,range.length);

        //2.使用结构初始化语法,给变量赋值
        NSRange rangInit = {2,3};
        输出:
        NSLog(@"%lud,%lud",rangeInit.location,rangeInit.length);

        //3.使用Cocoa提供的函数来创建变量的值
        NSRange rangeCocoa = NSMakeRange(2,3);
        NSLog(@"%lud,%lud",rangeCocoa.location,rangeCocoa.length);
NSPoint :代表笛卡尔平面的坐标点(x,y)
结构体:
 struct CGPoint{
            CGFloat x;
            CGFloat y;
       }NSPoint;
 NSMakePoit函数:
       NS_INLINE NSPoint NSMakePoint(CGFloat x,CGFloat y){

            NSPoint p;
            p.x = x;
            p.y = y;
            return p;
       } 
CGPointMake函数:
      CGPointMake(CGFloat x,CGFloat y){
          CGPoint p;
          p.x = x;
          p.y = y;
          return p;
      } 
实例演示:
      //NSPoint主要是表示位置
      //1.直接创建变量,然后根据结构体成员访问语法,分别给每一个成员赋值
      NSPoint p;
      p.x = 21;
      p.y = 23;

      //2.快速的创建点
      NSPoint p = NSMakePoint(12,13);

      //3.用CGPointMake创建点
      NSPoint p;
      p = CGPointMake(34,43);
NSSize :用来存储长度和宽度
结构体:
   typedef struct _NSPoint{
          float width;
          float heigh;
      }NSSIze;
NSRect :由点和大小复合而成的矩形数据类型
结构体:
     typedef struct _NSRect{
         NSPoint origin;
         NSSize size;
     }NSRect;
 ```
 ####NSRect类型的变量的创建方法
 ```  
     //1.直接创建变量
     NSRect rect;
     NSPoint Origin = {33.0f,44,0f};
     rect.origin = Origin;//给rect传递NSPoint类型值
     NSSize size = {22.2f,33.3f};
     rect.size  = size;//给rect传NSSize类型值

     //2.使用结构体初始化语法
     NSRect rect = {22.2f,33.3f,45.4f,45,23f};

     //3.使用cocoa提供的函数来创建变量的值
     NSRect rectWithFun = NSMakeRect(22.2f,33.3f,45.4f,45,23f});
cocoa为这些数据类型创建了快捷函数
1 >NSMakePoint()
2 >NSMakeSize()
3 >NSMakeRect()

2.字符串:NSString NSMutableString的常见操作

NSString类:
1.创建字符串对象
NSString *str = @"hello world!”;//创建字符串常量   

//创建一个空的字符串   
NSString *str = [ [NSString alloc] init];   
NSString *str = [NSString string];

//使用已有字符串来创建一个新的字符串对象
NSString *str1 = [[NSString alloc] initWithString:str];
NSString *str1 = [[NSString alloc] stringWithString:str];

//用格式化字符串初始化字符串对象
NSString *str2= [[NSString alloc] initWithFormat:@"%@, %i,%s",str,10,"abcd"];
NSString *str2= [[NSString alloc] stringWithFormat:@"%@, %i,%s”,str,10,"abcd"];
2,字符串的转化
//把c字符串转化为oc字符串对象
char *cstr = "hello qingyun";
NSString *str3 = [[NSString alloc]initWithCString:cstrencoding:NSUTF8StringEncoding];
或者
NSString *str3 = [[NSString alloc] initWithUTF8String:cstr ];


//把oc字符串转化为c字符串
NSString *str = @"hello world!";
const char *cstr = [str UTF8String];
或者
const char *cstr = [str cStringUsingEncoding:NSUTF8StringEncoding];

//把数字串转化为相应的数据类型
str = @"1234";
int a = [str intValue];
[str floatValue]//转化成float型
[str doubleValue]//转化成double型
3,NSString常用的方法
NSLog(@"%ld",[str length]);//求字符串的长度

NSLog(@"%c",[str characterAtIndex:?]);//?代表下标,注意不要越界。获取字符串中得字符

NSLog(@"%@",[str substringToIndex:n]);//获取指定长度的字符串,是从头开始截取到n-1下标的内容

NSLog(@"%@",[str substringFromIndex:n]);//从指定位置开始向后截取字符串,一直到结束

NSRange range = {4,4};//结构体初始化,其中第一个4指的位置,后一个是长度

NSLog(@"%@",str substringWithRange:range);//获取指定范围内的字符串,

//查找子串,找不到返回NSNotFound,找到返回loctation和length
NSRange range = [str rangeOfString:@“hello"];
if(range.location != NSNotFound)
{
NSLog(@"%ld %ld",range.location,range.length);
}

NSString *str1 = [str substringWithRange:NSMakeRange(4,4)];
//NSMakeRange可以生成结构体
 NSString *str = @“www.itcast.com";

BOOL ret = [str hasPrefix:@"www"];//判断字符串是否以指定字符串开头
 NSString *str = @“www.itcast.com";

BOOL ret`这里写代码片` = [str hasSuffix:@“.com"];//判断字符串是否以指定的字符串结尾

BOOL ret = [str1 isEqualTo:str2];//比较两个字符串是否相等,相等返回YES,不等返回NO

//两个字符串比较大小,str1大 返回1,相等返回0, 小于返回-1
NSComparisonResult result = [str1 compare:str2];

//不区分大小写比较大小
NSComparisonResult result = [str1 caseInsensitiveCompare:str2];

NSLog(@"%@",[str uppercaseString]);//将字符串中得所有小写字母转化为大写字符,不改变原来的字符串
NSLog(@"%@",[str lowercaseString]);//将字符串中得所有大写字母转化为小写字符,不改变原来的字符串
NSLog(@"%@",[str capitalizeString]);//将字符串中出现的第一个字母转化为大写,其余字母小写
二.NSMutableString类
提示:NSMutabaleString是可变字符串(动态增加或者减少),继承于NSString,可以使用NSString的所有方法。

1.初始化字符串

//将不可变的字符串转换为可变的字符串
NSMutableSting *str =[ [NSMutableString alloc] initWithString:@"hello"];

//容量只是一个参考值
NSMutableSting *str =[ [NSMutableString alloc] initWithCapacity:10];

2.常用方法
[str insertString:@"123" atIndex:1];//在指定下标(不要越界)位置插入NSString类型字符串

[str appendString:@“123"];//在字符串末尾追加字符串

[str appendFormat:@"%@, oc语言, %i”,@"正在学习",1];//在字符串末尾,格式化追加字符串

[str deleteCharactersInRange:NSMakeRange(0,2)];//从指定下标删除length个字符

[str setString:@"itcast"];//修改字符串亦称对该可变字符串赋值

[str replaceCharactersInRange:NSMakeRange(3,1) withString:@"ios"];
//将指定下标位置的length个字符替换为指定的字符串
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值