Big*_*tor 3 string maxlength string-length ios swift
我有一个使用单个字符串的应用程序.此字符串包含从数组加载的数据,然后该字符串将导出到文本文件.
我的问题是这个字符串可能的最长长度是什么,它什么时候变得太长了?
遵循Apple官方文档:
String作为NSString桥接到Objective-C,而起源于Objective-C的String可以将其字符存储在NSString中.
由于所有能够运行iOS的设备都是32位,这意味着NSUIntegerMax2 ^ 32.
根据Swift opensource GitHub repo它的值似乎是2 ^ 64 = 18,446,744,073,709,551,615; 64位设备的十六进制0xFFFFFFFFFFFFFF,遵循以下代码:
#if __LP64__ || TARGET_OS_EMBEDDED || TARGET_OS_IPHONE || TARGET_OS_WIN32 || NS_BUILD_32_LIKE_64
typedef long NSInteger;
typedef unsigned long NSUInteger;
#else
typedef int NSInteger;
typedef unsigned int NSUInteger;
#endif
// + (instancetype)
// stringWithCharacters:(const unichar *)chars length:(NSUInteger)length
...
maxLength:(NSUInteger)maxBufferCount
...
Run Code Online (Sandbox Code Playgroud)
测试 :(在iPhone 6上)
String被桥接到Objective-C as NSString,String
起源于Objective-C的a可以将它的字符存储在一个
NSString. 由于 的任意子类都NSString可以成为 a String,因此在这种情况下不能保证表示或效率。
NSString物体的最大长度是多少?
的硬限制NSString是NSUIntegerMax字符。NSUIntegerMax是 2^32 - 1 并且NSString可以容纳超过 42 亿个字符。
根据评论:适用于 iPhone 5S 及更高版本,因为它们是 64 位。它是 2^(64 - 1)
| 归档时间: |
|
| 查看次数: |
5849 次 |
| 最近记录: |