: 0x880e28045a54195, NSTaggedPointerString, 18446744073709551615 string3: 0x10071f6d0, __NSCFString,...NSTaggedPointerString Tagged Pointer,字符串的值直接存储在了指针上。...string1 NSTaggedPointerString 通过stringWithFormat:方法创建,指针足够存储字符串的值。...string2 NSTaggedPointerString 通过stringWithFormat:方法创建,指针足够存储字符串的值。...分别打印两段代码的self.name类型看看,原来第一段代码中self.name为__NSCFString类型,而第二段代码中为NSTaggedPointerString类型。
stringWithFormat:@"%d", i]; NSLog(@"%d, %s, %p", i, object_getClassName(str), str); self.target = str; 输出: 0, NSTaggedPointerString..., 0x3015 发现这个字符串类型是 NSTaggedPointerString,那我们来看看 Tagged Pointer 是什么?
个字符) NSLog(@"%p %@", str1, [str1 class]); NSLog(@"%p %@", str2, [str2 class]); // 0xa000000000000301 NSTaggedPointerString...1000; i++) { dispatch_async(queue, ^{ self.name = [NSString stringWithFormat:@"abcdefghi"]; // NSTaggedPointerString
1.2、字符串的isa (1)NSTaggedPointerString NSTaggedPointerString 用指针地址的富余位存储当前变量值,若对象指针的最低有效位为1(即奇数),则该指针为...对于NSNumber,小于2^60-1的整数就都采用Tagged Pointer来存储,对于字符串来说所需内存小于60位的,它可以创建一个Tagged Pointer,所以NSTaggedPointerString
Intance_class == __NSCFString selector:encodeWithOSLogCoder:options:maxLength:, result:0 Intance_class == NSTaggedPointerString...Intance_class == __NSCFString selector:encodeWithOSLogCoder:options:maxLength:, result:0 Intance_class == NSTaggedPointerString...selector:_dynamicContextEvaluation:patternString:, result:0 Intance_class == NSTaggedPointerString selector
看不到具体代码,控制台看到直接原因是 [NSTaggedPointerString objectForKey:]: unrecognized selector sent to instance 由于友盟的初始化发生在很早的时候
NSLog(@"----%@----",[@"123456" class]); 2020-10-13 10:19:08.144046+0800 TestTRTC[6153:47191] ----NSTaggedPointerString
:__NSArray0 po [@[@1] class] before iOS9:__NSArrayI iOS10:__NSSingleObjectArrayI po [objc_getClass("NSTaggedPointerString
领取专属 10元无门槛券
手把手带您无忧上云