zoukankan      html  css  js  c++  java
  • autoreleasepool

    @autoreleasepool{}

    ARC模式下:

    1.[p autorelease]; 只会将p放入pool中,不会立即release(即 retain - 1),延迟至pool销毁时。

    2.在pool销毁时,其中的所有对象都将进行release。

    3.若开辟多线程时(如:[self performSelectorInBackground:@selector(setupLocalContactsData:) withObject:success]),

       要在setupLocalContactsData:中加入autoreleasepool进行内存管理。

    EX:

      if (version < 6.0) {
                _addressBookRef = ABAddressBookCreate();
                [self performSelectorInBackground:@selector(setupLocalContactsData:) withObject:success];//新建后台线程执行
             
            }

    - (void)setupLocalContactsData:(void (^)(NSArray *localContacts))success
    {
        @autoreleasepool { //对新线程做内存管理
            
            NSMutableDictionary *pinyinDictionary = nil;
            NSMutableArray *resultArray = [NSMutableArray array];
            
            CFArrayRef allPeopleArrayRef = ABAddressBookCopyArrayOfAllPeopleInSourceWithSortOrdering(_addressBookRef, nil, kABPersonSortByLastName);

        }

    }

     
  • 相关阅读:
    TLE: poj 1011 Sticks
    UVa 116 Unidirectional TSP
    csuoj 1215 稳定排序
    UVa 103 Stacking Boxes
    UVa 147 Dollars
    UVa 111 History Grading
    怎么在ASP.NET 2.0中使用Membership
    asp.net中如何删除cookie?
    ASP.NET中的HTTP模块和处理程序[收藏]
    NET开发中的一些小技巧
  • 原文地址:https://www.cnblogs.com/liuziyu/p/4181080.html
Copyright © 2011-2022 走看看