how can I Add a ABRecordRef to a NSMutableArray in iPhone?

前端 未结 4 1789
不思量自难忘°
不思量自难忘° 2021-01-02 05:26

I want to create an array of ABRecordRef(s) to store contacts which have a valid birthday field.

   NSMutableArray* bContacts = [[NSMutableArray alloc] init         


        
4条回答
  •  不知归路
    2021-01-02 06:10

    I know this is an old question, but since the introduction of ARC, this is handled in a different way.

    There are two possible ways of adding an ABRecordRef to an NSMutableArray now, both of which require a bridged cast:

    Direct conversion

    [bContacts addObject:(__bridge id)(ref)];
    

    This simply converts the ABRecordRef pointer, and should be used, if you didn't create ref yourself using a method that has Create in its name.

    Transfer ownership to ARC

    [bContacts addObject:CFBridgingRelease(ref)];
    

    This converts the ABRecordRef pointer, and in addition transfers its ownership to ARC. This should be used, if you used e.g. ABPersonCreate() to create a new person.

    More information can be found in the Transitioning to ARC Release Notes. There are also many other informative sources here on Stack Overflow, such as this question.

提交回复
热议问题