zoukankan      html  css  js  c++  java
  • Objective-C中NSString对象的retainCount

    NSString对象的retainCount为-1
    Objective-C中NSString对象与其他类型的对象在引用计数上存在着不小的差别。对于NSString的对象,不同的创建方式以及不同的字符个数都会影响对象的引用计数。
    1)首先,当字符串的个数小于10个的时候,不管采用哪一种创建方式所得到的字符串都不存在引用计数一说
     NSMutableArray *ary = [[NSMutableArray array] retain];
        NSString *str = [NSString stringWithFormat:@"test"];
        [str retain];
        [ary addObject:str];
        NSLog(@"%@-->%zd",str,[str retainCount]);
        [str retain];
        [str release];
        [str release];
        NSLog(@"%@-->%zd",str,[str retainCount]);
        [ary removeAllObjects];
    2)当字符串的长度大于等于10时,开始产生差别(stringWithString的创建方式与字面量方式是一样的)
    NSMutableArray *ary = [[NSMutableArray array] retain];
        NSString *str = [NSString stringWithFormat:@"testatestatestatest"];
        [str retain];
        [ary addObject:str];
        NSLog(@"%@-->%zd",str,[str retainCount]);
        [str retain];
        [str release];
        [str release];
        NSLog(@"%@-->%zd",str,[str retainCount]);
        [ary removeAllObjects];
        NSLog(@"%@--->%zd",str,[str retainCount]);
     
    3)将%ld占位符换成%lu后,会发现,当字符串的长度小于10个的时候,对象的引用计数是64位OS下无符号长整型的最大值
  • 相关阅读:
    关于带权并查集
    Connections in Galaxy War ZOJ
    Supermarket POJ
    并查集判树 poj 1308
    最长异或值路径【字典树应用】
    最大异或对
    trie字典树【模板题】
    UVA536 二叉树重建 Tree Recovery
    UVA1584环状序列 Circular Sequence
    【CodeForces 622F】The Sum of the k-th Powers
  • 原文地址:https://www.cnblogs.com/banchuangshuying/p/9233064.html
Copyright © 2011-2022 走看看