黑马程序员——OC语言加强---NSRange使用

本文详细介绍了Objective-C中的NSRange结构体,包括其定义、成员以及如何创建和使用NSRange。通过示例展示了如何表示字符串或数组中的范围,并提供了四种创建NSRange的方法,如直接赋值、使用NSMakeRange函数等。

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

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

NSRange使用(范围)

1、NSRange的使用

NSRange是Foundation框架中比较常用的结构体,它的定义如下:

typedef struct _NSRange {

   NSUInteger location;

   NSUInteger length;

}NSRange; 

// NSUInteger的定义

typedef unsigned int NSInteger;

typedef unsigned long NSUInteger; 

NSRange用来表示事物的一个范围,通常是字符串里的字符范围或者数组里的元素范围

NSRange有2个成员

NSUInteger location : 表示该范围的起始位置

NSUInteger length : 表示该范围内的长度

比如@“Ilove iOS”中的@“iOS”可以用location为7,length为3的范围来表示

2、NSRange创建的几种方式

有4种方式创建一个NSRange变量 

方式1 :通过结构体变量访问成员

   NSRange range;

   range.location = 7;

   range.length = 3;

方式2 :结构体变量整体赋值

    NSRange range = {7,3}; 或者

   NSRange range = {.location = 7,.length = 3};

    //只给结构体变量中的成员赋值 

方式3 : 使用NSMakeRange函数 (OC新增的)

   NSRange range = NSMakeRange(7, 3); 

方式4 : 最直接的方式

   NSRange range = {5,8}; 

NSStringFromRange :将NSRange转成字符串;

NSStringFromRange(range)

NSLog(@"%@",NSStringFromRange(range)); 

<span style="font-size:14px;">#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
    @autoreleasepool {       
        NSRange range;  //range 结构体变量
        NSRange *r ;    // r 结构体指针        
        //range变量的初始化方式
        //1) 通过结构体变量访问成员
        range.location = 3;
        range.length = 2;       
        //2) 结构体变量整体赋值
        range = (NSRange){5,3};
        NSRange r2 = {4,5};  //最简单的        
        //3)
        NSRange r3 = {.location = 3};  //只是给结构体变量中的.location 成员赋值        
        //4) OC中新增的
        //NSMakeRange函数的作用给 NSRange结构体变量赋值
        NSRange r4 = NSMakeRange(3, 3);        
        //查看结构体变量的值
        NSLog(@"%ld,%ld",r4.location,r4.length);
        //可以把结构体变量转换为 NSString类型
        NSLog(@"%@",NSStringFromRange(r4));        
    }
    return 0;
}</span>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值