当前位置:  开发笔记 > 前端 > 正文

如何创建NSIndexPath所需的"索引":indexPathWithIndexes:length:

如何解决《如何创建NSIndexPath所需的"索引":indexPathWithIndexes:length:》经验,为你挑选了3个好方法。

使用一个或多个节点创建索引路径的类方法是:

+ (id)indexPathWithIndexes:(NSUInteger *)indexes length:(NSUInteger)length

我们如何创建第一个参数所需的"索引"?

文档将其列为构成索引路径的索引数组,但它期望(NSUinteger*).

要创建1.2.3.4的索引路径,它只是一个[1,2,3,4]的数组吗?



1> Barry Wark..:

你是对的.您可以像这样使用它:

NSUInteger indexArr[] = {1,2,3,4};

NSIndexPath *indexPath = [NSIndexPath indexPathWithIndexes:indexArr length:4];


@Steve不是这种情况.您可以在Cocoa的内存管理编程指南中找到所有与Cocoa相关的内存管理问题的答案(http://developer.apple.com/mac/library/documentation/cocoa/Conceptual/MemoryMgmt/MemoryMgmt.html) .因为`indexPathWithIndexes:length`在选择器中没有'new','copy'或'alloc',所以Cocoa规则指定它返回一个自动释放的实例.

2> 小智..:

在iOS上,您还可以使用NSIndexPath UIKit Additions中的此方法(在UITableView.h中声明):

+ (NSIndexPath*) indexPathForRow:(NSUInteger)row inSection:(NSUInteger)section


上面的方法与下面的代码相同:`NSUInteger indexes [] = {section,row}; [NSIndexPath indexPathWithIndexes:indices length:2];`(如果您同时定位iOS和Mac平台,则NSIndexPath UIKit扩展不可用,因此您需要使用此方法.)
它有很好的文档记录:http://developer.apple.com/iphone/library/documentation/uikit/reference/NSIndexPath_UIKitAdditions/Reference/Reference.html,但它只能在iphone(UIKit)上使用.

3> Giao..:

你的假设是正确的.它就像NSUInteger的C数组一样简单.length参数是索引数组中的元素数.

C中的数组通常被标识为带有长度参数的指针(在本例中为NSUInteger*)或已知的终结符,例如\ 0表示C字符串(它只是一个字符数组).

推荐阅读
Chloemw
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有