还有比 proposed here 更好的方法吗?在 TableView 单元格的 NSIndexPath
之间创建一对一映射和一个独特的NSUInteger
或int
,以创造独特的tag
单元格中小部件的属性值(UIProgressView
)?
该链接通过 UIKit
添加方法可在 NSIndexPath
之间转换的类别扩展和int
,但它们仅适用于少于一定数量的行。
当然,我可能不会遇到这个限制,但我想知道是否有人提出了一个映射,可以保证适用于任意数量的行。
最佳答案
不,确实没有一种方法可以保证适用于任意数量的行。如果您有一个包含 2 个部分的表,每个部分有 30 亿行,则无法将这 60 亿个潜在 NSIndexPaths 映射到 40 亿个 32 位 NSIntegers。
(如果您正在构建 64 位应用程序,同样的情况也是如此,但示例中的数字必须再大 40 亿倍。)
在您链接到的示例中,他们使用每个部分 10,000 行的限制;如果您非常担心可能有更多的行,则可以使用更大的常量,即,如果您知道不会有超过 4,000 个部分,则可以使用 1,000,000 作为最大行数。
请注意,当然,“真正的程序员”可能会使用 65536 作为常量。
关于iphone - 在唯一的 NSIndexPath 和唯一的 NSUInteger(或 int)之间转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1849669/