FROM : Mike Abdullah
DATE : Fri Feb 01 21:38:14 2008
On 1 Feb 2008, at 19:33, Steven Crosley wrote:
> Looks like it was an issue with the setAddressBook function. Works
> like a charm now, and I think I more fully understand how memory
> management works. Thanks again for all your help!
>
> Before suggestions:
>
> - (void)setAddressBook
> {
> book = [ABAddressBook sharedAddressBook];
> person = (ABPerson *)[book recordForUniqueId:[self uid]];
> }
>
>
> After suggestions:
>
> - (void)setAddressBook
> {
> [book release];
> [person release];
> book = [[ABAddressBook sharedAddressBook] retain];
> person = (ABPerson *)[[book recordForUniqueId:[self uid]] retain];
> }
There's a big possible flaw here. What if the old and new book or
person objects are the same? You'll release the object, and if that
deallocs it, the next code will attempt to retain a dead object.
Admittedly in this particular case it's pretty unlikely, but it's good
general practice for accessor methods of all kinds.
>
>
> On Feb 1, 2008, at 12:51 PM, j o a r wrote:
>
>>
>> On Feb 1, 2008, at 10:29 AM, Steven Crosley wrote:
>>
>>> [NSCFString valueForProperty:]: unrecognized selector sent to
>>> instance 0x1b90e0
>>
>>
>> Sounds like a message sent to a deallocated object, something that
>> using NSZombieEnabled would help you troubleshoot. Give it a try!
>>
>> j o a r
>>
>>
>
> _______________________________________________
>
> Cocoa-dev mailing list (<email_removed>)
>
> Please do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
>
> Help/Unsubscribe/Update your Subscription:
> http://lists.apple.com/mailman/options/cocoa-dev/<email_removed>
>
> This email sent to <email_removed>
DATE : Fri Feb 01 21:38:14 2008
On 1 Feb 2008, at 19:33, Steven Crosley wrote:
> Looks like it was an issue with the setAddressBook function. Works
> like a charm now, and I think I more fully understand how memory
> management works. Thanks again for all your help!
>
> Before suggestions:
>
> - (void)setAddressBook
> {
> book = [ABAddressBook sharedAddressBook];
> person = (ABPerson *)[book recordForUniqueId:[self uid]];
> }
>
>
> After suggestions:
>
> - (void)setAddressBook
> {
> [book release];
> [person release];
> book = [[ABAddressBook sharedAddressBook] retain];
> person = (ABPerson *)[[book recordForUniqueId:[self uid]] retain];
> }
There's a big possible flaw here. What if the old and new book or
person objects are the same? You'll release the object, and if that
deallocs it, the next code will attempt to retain a dead object.
Admittedly in this particular case it's pretty unlikely, but it's good
general practice for accessor methods of all kinds.
>
>
> On Feb 1, 2008, at 12:51 PM, j o a r wrote:
>
>>
>> On Feb 1, 2008, at 10:29 AM, Steven Crosley wrote:
>>
>>> [NSCFString valueForProperty:]: unrecognized selector sent to
>>> instance 0x1b90e0
>>
>>
>> Sounds like a message sent to a deallocated object, something that
>> using NSZombieEnabled would help you troubleshoot. Give it a try!
>>
>> j o a r
>>
>>
>
> _______________________________________________
>
> Cocoa-dev mailing list (<email_removed>)
>
> Please do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
>
> Help/Unsubscribe/Update your Subscription:
> http://lists.apple.com/mailman/options/cocoa-dev/<email_removed>
>
> This email sent to <email_removed>
| Related mails | Author | Date |
|---|---|---|
| Steven Crosley | Feb 1, 18:13 | |
| Adhamh Findlay | Feb 1, 18:25 | |
| Steven Crosley | Feb 1, 18:36 | |
| Chris Suter | Feb 1, 18:46 | |
| Steven Crosley | Feb 1, 19:29 | |
| j o a r | Feb 1, 19:51 | |
| Steven Crosley | Feb 1, 20:33 | |
| Mike Abdullah | Feb 1, 21:38 | |
| Michael Watson | Feb 1, 22:15 | |
| Chris Suter | Feb 2, 03:58 |






Cocoa mail archive

