美文网首页
字符串缓存策略

字符串缓存策略

作者: 你飞跃俊杰 | 来源:发表于2021-04-14 11:23 被阅读0次
    
        for (int i = 0; i < 1000; i++) {//100次不会闪退,次数少
            dispatch_async(dispatch_get_global_queue(0, 0), ^{
                people.name = [NSString stringWithFormat:@"asjkdhaksjdhkasd"];//__NSCFString
                NSLog(@"%@",[people.name class]);
            });
        }
    
    //当字符串长的时候,用__NSCFString,是一个变量,会并发 set方法   并发release闪退
    -(void)setName:(NSString *)name{
        if (_name != name) {
            [_name release];
            _name = [name retain];
        }
        return _name;
    }
    
    //当字符串短的时候用NSTaggedPointerString,是一个常量,指向同一个常量区,不会闪退
        for (int i = 0; i < 1000; i++) {
            dispatch_async(dispatch_get_global_queue(0, 0), ^{
                people.name = [NSString stringWithFormat:@"123456789"];//NSTaggedPointerString
                NSLog(@"%p",people.name);
                NSLog(@"%@",[people.name class]);
            });
        }
    

    相关文章

      网友评论

          本文标题:字符串缓存策略

          本文链接:https://www.haomeiwen.com/subject/ztnnkltx.html