@autoreleasepool 初步使用

2023-07-04  本文已影响0人  林希品

不良代码

{
    @autoreleasepool {
        NSUInteger *userCount = userDatabase.userCount;
        for(NSUInteger *i = 0; i < userCount; i++) {
            Person *p = [userDatabase userAtIndex:i];
            NSString *fname = p.fname;
            if(fname == nil) {
                fname = [self askUserForFirstName];
            }
            NSString *lname = p.lname;
            if(lname == nil) {
                lname = [self askUserForLastName];
            }
            //...
            [userDatabase updateUser:p];
        }
    }
}

好的代码

{
    @autoreleasepool {
        NSUInteger *userCount = userDatabase.userCount;
        for(NSUInteger *i = 0; i < userCount; i++) {
            @autoreleasepool {
                Person *p = [userDatabase userAtIndex:i];
                NSString *fname = p.fname; if(fname == nil) {
                    fname = [self askUserForFirstName];
                }
                NSString *lname = p.lname;
                if(lname == nil) {
                    lname = [self askUserForLastName];
                }
                //...
                [userDatabase updateUser:p];
            }
        }
    }
}
上一篇 下一篇

猜你喜欢

热点阅读