【Foundation-36-1】#import Foundation/NSIndexPath.h树结构

2024-08-27 07:48

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



NSIndexPath 让你精确指定一个树结构 data structure 里面的某个节点的数据
比如你有一个 NSArray, 里面很多节点,每个节点又是一个 NSArray,每个节点的这个里面又是一个NSArray,然后下面又是一个  NSArray
这样简单说起来,你有一个四层的 NSarray ,每层下面都有好多个 NSArray。
然后你造一个  NSIndexPath 1.3.4.2
你就可以拿它访问      第一层第三个节点之下第四个节点第二个节点的数据


常见的就是 UITableView 的 section  和 row


@interface NSIndexPath : NSObject <NSCopying, NSSecureCoding> {

@private

__strong NSUInteger *_indexes;

#if !__OBJC2__

NSUInteger _hash;

#endif

NSUInteger _length;

        void *_reserved;

}


+ (instancetype)indexPathWithIndex:(NSUInteger)index;

+ (instancetype)indexPathWithIndexes:(const NSUInteger [])indexes length:(NSUInteger)length;


- (instancetype)initWithIndexes:(const NSUInteger [])indexes length:(NSUInteger)length NS_DESIGNATED_INITIALIZER;


- (instancetype)initWithIndex:(NSUInteger)index;



- (NSIndexPath *)indexPathByAddingIndex:(NSUInteger)index;

- (NSIndexPath *)indexPathByRemovingLastIndex;


- (NSUInteger)indexAtPosition:(NSUInteger)position;

@property (readonly) NSUInteger length;


- (void)getIndexes:(NSUInteger *)indexes;


- (NSComparisonResult)compare:(NSIndexPath *)otherObject; // 


@end




// 这个是在 UITableView 里的拓展

@interface NSIndexPath (UITableView)


+ (NSIndexPath *)indexPathForRow:(NSInteger)row inSection:(NSInteger)section;

    NSIndexPath *path = [NSIndexPath indexPathForRow:5 inSection:2];


@property(nonatomic,readonly) NSInteger section;

@property(nonatomic,readonly) NSInteger row;


@end




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



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

相关文章

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

关于大模型和AIGC的36条笔记和真话

行业到底有多卷? 最新统计,中国已有130多个大模型问世,在网信办备案的算法模型也超过70多家。BAT等互联网巨头悉数下场发布AI大模型,仅2023年就有超60家创业公司拿到融资,产品更是布满了基础层、模型层和应用层。新一代生成式AI,可能要回头看看上一代AI趟过的坑,不要行业自嗨,避免上一个冬天的轮回。在这个领域的从业者,更要清晰地看到行业的内卷和客户的痛点,别被大佬的鸡汤迷了眼。 1、

itoa()函数,10进制转换到(2~36)进制

先看下itoa()的函数说明吧: 功 能:把一整数转换为字符串   用 法:char *itoa(int value, char *string, int radix);    详细解释:itoa是英文integer to array(将int整型数转化为一个字符串,并将值保存在数组string中)的缩写.    参数:  value: 待转化的整数。            radix:

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

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

代码随想录Day 36|滑铁卢了,leetcode题目:1049.最后一块石头的重量、494.目标和、474.一和零

提示:DDU,供自己复习使用。欢迎大家前来讨论~ 文章目录 动态规划一、题目题目一:1049.最后一块石头的重量II解题思路: 题目二:494.目标和动态规划 (二维dp数组)#动态规划 (一维dp数组) 题目三: 474.一和零解题思路: 总结 动态规划 有点难了,之前差的有点多,找时间补 一、题目 题目一:1049.最后一块石头的重量II leetcode题目链接

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

【大数据Java基础-JAVA 面向对象11】关键字(二):package/import

1.1 使用说明: * 1.为了更好的实现项目中类的管理,提供包的概念 * 2.使用package声明类或接口所属的包,声明在源文件的首行 * 3.包,属于标识符,遵循标识符的命名规则、规范(xxxyyyzzz)、“见名知意” * 4.每"."一次,就代表一层文件目录。 1.2 举例: 举例一: 某航运软件系统包括:一组域对象、GUI和reports子系统 举例二:MVC设计模式