【Foundation-62-1】#import Foundation/NSRange.h范围

2024-08-27 07:48

本文主要是介绍【Foundation-62-1】#import Foundation/NSRange.h范围,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


// NSRange 的结构体

typedef struct _NSRange {

   NSUInteger location;

   NSUInteger length;

} NSRange;

    NSRange theRange = NSMakeRange(2, 4);NSUInteger loc = theRange.location; // 起始位置NSUInteger len = theRange.length;   // 长度


// NSRange 的指针  啥用子类?没用过,求告知

typedefNSRange *NSRangePointer;

????



// 创建 NSRange

NS_INLINENSRange NSMakeRange(NSUInteger loc,NSUInteger len) {

   NSRange r;

    r.location = loc;

    r.length = len;

   return r;

}

    NSRange theRange = NSMakeRange(2, 4);


// 最大值

NS_INLINENSUInteger NSMaxRange(NSRange range) {

   return (range.location + range.length);

}

    NSRange theRange = NSMakeRange(2, 4);NSUInteger six = NSMaxRange(theRange);<span style="white-space:pre">	</span>


// 判断位置是否在 范围内

NS_INLINEBOOL NSLocationInRange(NSUInteger loc,NSRange range) {

   return (!(loc < range.location) && (loc - range.location) < range.length) ?YES : NO;

}

    if (NSLocationInRange(3, NSMakeRange(1, 4))) {NSLog(@"yes");}


// 判断2个范围是否完全一致

NS_INLINEBOOL NSEqualRanges(NSRange range1,NSRange range2) {

   return (range1.location == range2.location && range1.length == range2.length);

}

    if (NSEqualRanges(NSMakeRange(1, 2), NSMakeRange(2, 3))) {NSLog(@"yes");}


FOUNDATION_EXPORTNSRange NSUnionRange(NSRange range1,NSRange range2);// 并集

FOUNDATION_EXPORTNSRange NSIntersectionRange(NSRange range1,NSRange range2);// 交集

FOUNDATION_EXPORTNSString *NSStringFromRange(NSRange range);// 范围转字符串

FOUNDATION_EXPORTNSRange NSRangeFromString(NSString *aString);// 字符串转范围


    NSRange range1 = NSMakeRange(1, 5);<span style="white-space:pre">			</span>12345NSRange range2 = NSMakeRange(3, 5);<span style="white-space:pre">			</span>34567NSRange unionRange = NSUnionRange(range1, range2);<span style="white-space:pre">			</span>1234567NSRange intersectionRange = NSIntersectionRange(range1, range2);<span style="white-space:pre">	</span>345NSString *rangeStr = NSStringFromRange(range1);<span style="white-space:pre">			</span>{1,5}NSLog(@"%@",rangeStr);NSRange strRange = NSRangeFromString(@"{1,4}");



@interface NSValue (NSValueRangeExtensions)


+ (NSValue *)valueWithRange:(NSRange)range;// 通过范围创建NSValue

@property (readonly)NSRange rangeValue;


@end


这篇关于【Foundation-62-1】#import Foundation/NSRange.h范围的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1111067

相关文章

ImportError: cannot import name ‘print_log‘ from ‘logging‘

mmcv升级到2.+后删除了很多 解决 查FAQ文档,找到 添加到mmcv.utils下即可

UserWarning: mkl-service package failed to import

安装完成anaconda,并设置了两个环境变量  之后再控制台运行python环境,输入import numpy as np,提示错误 D:\InstallFolder\Anaconda3\lib\site-packages\numpy\__init__.py:143: UserWarning: mkl-service package failed to import, therefore

The import com.google cannot be resolved

The import com.google cannot be resolved,报错: 第一感觉就是缺少jar包,因为项目用maven管理,所以在pom.xml中添加: <dependency>  <groupId>com.google.code.gson</groupId>  <artifactId>gson</artifactId>  <version>2.3.1</ver

过滤器:精密过滤器特点及应用范围概述

精密过滤器(又称作保安过滤器),筒体外壳一般采用不锈钢材质制造,内部采用PP熔喷、线烧、折叠、钛滤芯、活性炭滤芯等管状滤芯作为过滤元件,根据不同的过滤介质及设计工艺选择不同的过滤元件,以达到出水水质的要求。随着过滤行业的不断发展,越来越多的行业和企业运用到了精密过滤器,越来越多的企业加入了精密过滤器行业。   一、精密过滤器的性能特点及应用   1、精密过滤器的性能特点   (1)过滤精

[论文笔记]Making Large Language Models A Better Foundation For Dense Retrieval

引言 今天带来北京智源研究院(BAAI)团队带来的一篇关于如何微调LLM变成密集检索器的论文笔记——Making Large Language Models A Better Foundation For Dense Retrieval。 为了简单,下文中以翻译的口吻记录,比如替换"作者"为"我们"。 密集检索需要学习具有区分性的文本嵌入,以表示查询和文档之间的语义关系。考虑到大语言模

Vue3+vite中使用import.meta.glob

前言:         在vue2中支持require导入模块或文件但是在vue3中已经不支持require导入了,为此vite提供了一个全新的方法import.meta.glob方法来支持批量导入文件  import.meta.glob 匹配到的文件默认是懒加载的,通过动态导入实现,并会在构建时分离为独立的 chunk。如果你倾向于直接引入所有的模块(例如依赖于这些模块中的副作用首先被应用

Python 2.7 安装MySQLdb模块 import MySQLdb

python 2.7 使用 import MySQLdb 报 Traceback (most recent call last):File "<stdin>", line 1, in <module>ImportError: No module named MySqldb 于是乎执行一下命令 一下搞定 pip install MySQL-python 再次执行import MySQ

Arcgis字段计算器:随机生成规定范围内的数字

选择字段计算器在显示的字段计算器对话框内,解析程序选择Python,勾选上显示代码块, 半部分输入: import random; 可修改下半部分输入: random.randrange(3, 28) 表示生成3-28之间的随机数 字段计算器设置点击确定完成随机数的生成,生成的随机数如下图所示。

【硬刚ES】ES入门 (13)Java API 操作(4)DQL(1) 请求体查询/term 查询,查询条件为关键字/分页查询/数据排序/过滤字段/Bool 查询/范围查询/模糊查询/高亮查询/聚合查

本文是对《【硬刚大数据之学习路线篇】从零到大数据专家的学习指南(全面升级版)》的ES部分补充。 1 请求体查询 2 高亮查询 3 聚合查询 package com.atguigu.es.test;import org.apache.http.HttpHost;import org.apache.lucene.search.TotalHits;import org.elasticse

【硬刚ES】ES入门 (8) 语法(6)DQL(3)组合查询/范围查询/模糊查询/单字段排序

本文是对《【硬刚大数据之学习路线篇】从零到大数据专家的学习指南(全面升级版)》的ES部分补充。 9 组合查询 `bool`把各种其它查询通过`must`(必须 )、`must_not`(必须不)、`should`(应该)的方 式进行组合 在 Postman 中,向 ES 服务器发 GET 请求 :http://127.0.0.1:9200/student/_search