前言

  • 结构体,这个结构体用来表示事物的一个范围,通常是字符串里的字符范围或者集合里的元素范围。

    	typedef struct _NSRange {
    NSUInteger location; // 表示该范围的起始位置
    NSUInteger length; // 表示该范围内所含的元素个数
    } NSRange; typedef unsigned long NSUInteger;

1、NSRange 结构体变量的创建与调用

	// NSRange 结构体变量的创建与赋值

		// 先定义变量,再赋值
NSRange range1;
range1.location = 6;
range1.length = 1; // 定义时直接赋值
NSRange range2 = {7, 2}; // 给指定成员赋值
NSRange range3 = {.length = 3, .location = 8}; // 使用函数赋值
NSRange range4 = NSMakeRange(9, 4); // NSRange 结构体变量值的调用 NSLog(@"range1: %zi, %zi", range1.location, range1.length);
NSLog(@"range2: %zi, %zi", range2.location, range2.length);
NSLog(@"range3: %zi, %zi", range3.location, range3.length);
NSLog(@"range4; %zi, %zi", range4.location, range4.length);

2、NSRange 与 NSString 的相互转换

	// NSRange 转 NSString
NSString *stringFronRange = NSStringFromRange(range4); // NSString 转 NSRange
NSRange range5 = NSRangeFromString(stringFronRange);

iOS - OC NSRange 范围的更多相关文章

  1. iOS - OC 面向对象语法

    1.类 1)根类:因为类 NSObject 是层次结构的最顶层,因此称为根类. 可以将类称为子类(subclass)和父类(superclass),也可以将类称为子类和超类. 2)分类/类别(cate ...

  2. ios+oc面试题

    ios+oc面试题     浅复制和深复制的区别?//浅拷贝和深拷贝答案:浅层复制(copy):只复制指向对象的指针,而不复制引用对象本身.//通过对象的指针来访问这个对象深层复制(mutableCo ...

  3. iOS OC语言原生开发的IM模块--RChat

    iOS OC语言原生开发的IM模块,用于项目中需要原生开发IM的情况,具备发送文字.表情.语音.图片.视频等完整功能,包含图片预览视频播放等功能,此项目将会长期更新如有问题可以提出,我的邮箱:fshm ...

  4. iOS - OC RunTime 运行时

    1.运行时的使用 向分类中添加属性 // 包含运行时头文件 #import <objc/runtime.h> /* void objc_setAssociatedObject(id obj ...

  5. iOS - OC Category 分类

    1.Category 1)分类/类别(category): 允许以模块的方式向现有类定义添加新的方法(默认不能添加实例变量).用以扩展自己或他人以前实现的类,使它适合自己的需要. 分类的名称括在类名之 ...

  6. iOS - OC 语言新特性

    前言 相对于 Java,OC 语言是一门古老的语言了,而它又是一门不断发展完善的语言.一些新的编译特性,为 OC 语言带来了许多新的活力.在 Xcode7 中,iOS9 的 SDK 已经全面兼容了 O ...

  7. iOS - OC NSKeyedArchiver 数据归档

    前言 @interface NSKeyedArchiver : NSCoder @interface NSKeyedUnarchiver : NSCoder 在 OC 语言中,归档是一个过程,即用某种 ...

  8. iOS - OC NSCalendar 日历

    前言 @interface NSCalendar : NSObject <NSCopying, NSSecureCoding> NSCalendar 对世界上现存的常用的历法进行了封装,既 ...

  9. iOS - OC NSArray 数组

    前言 @interface NSArray<__covariant ObjectType> : NSObject <NSCopying, NSMutableCopying, NSSe ...

随机推荐

  1. WPF single instance

    转自:http://www.cnblogs.com/z_lb/archive/2012/09/16/2687487.html public partial class App : Applicatio ...

  2. Using Controls in a Form Design [AX 2012]

    Using Controls in a Form Design [AX 2012] This topic has not yet been rated - Rate this topic Update ...

  3. 使用composer构建PHP框架怎么把Redis引入

    选择 nrk/predis 作为 Redis 驱动,修改composer.json增加一个 require 项: "predis/predis": "*" 运行 ...

  4. C#:Winform技巧

    1.如何设置winform窗体透明,但是显示的内容不透明? 方法:BackColor设置:Red(任意)在窗体属性里设置一个“TransparenceKey”的属性为Red 2.如何让C#编译不安全代 ...

  5. 线程属性pthread_attr_t

    转:http://blog.sina.com.cn/s/blog_6dc9e4cf0100xcvk.html1.    线程属性:             使用pthread_attr_t类型表示,我 ...

  6. ScheduledExecutorService定时周期执行指定的任务

    示例代码 package com.effective.common.concurrent.execute; import java.text.DateFormat; import java.text. ...

  7. YTU 3003: 括号匹配(栈和队列)

    3003: 括号匹配(栈和队列) 时间限制: 1 Sec  内存限制: 128 MB 提交: 2  解决: 2 [提交][状态][讨论版] 题目描述 假设一个表达式中只允许包含三种括号:圆括号&quo ...

  8. Ajax中GET和POST的区别

    Get方式: 用get方式可传送简单数据,但大小一般限制在1KB下,数据追加到url中发送(http的header传送),也就是说,浏览器将各个表单字段元素及其数据按照URL参数的格式附加在请求行中的 ...

  9. Java Cryptography Extension (JCE): 放开Java加密算法密钥最大长度16的限制

    1. 在官网下载JCE: http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads- ...

  10. reactjs入门到实战(二)---- jxs详解

    >>>如何转换    JSX transformer   Babel    官网:http://babeljs.io/   里面有一个可以看转换的测试器,es6什么的也可以应用: 注 ...