Mailing Lists: Apple Mailing Lists

Image of Mac OS face in stamp
 
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: What are double asterisks for?



At 1:35 PM -0800 12/29/02, Joseph Jones wrote:

>The double asterisks mean a double pointer, or a pointer to a pointer. This
>usually means that the API will create an NSDictionary object for you and
>pass that back in this parameter.
>
>Here is an example of how you should call this API:
>
>NSDictionary *myDict;
>NSFileWrapper* fileWrapper = [[NSFileWrapper alloc] init...];
>
>[myObject initWithRTFDFileWrapper:fileWrapper documentAttributes:&myDict];
>
>...Do something with the document attributes now stored in myDict;
>
>[myDict release];
>[fileWrapper release];

I'm dubious about the [myDict release] statement. The comments in the
framework header file (NSAttributedString.h) do not state anything
definite, but I'd guess
that the NSDictionary instance returned by
"-(id)initWithRTFDFileWrapper:(NSFileWrapper *)wrapper
documentAttributes:(NSDictionary **)dict" is an autoreleased one. In
this case, of course, releasing it in your method would cause a crash
later on, when the autorelease pool is deallocated. Please note,
this is just a concern of mine: I had no time/opportunity to test. As
a suggestion, I'd try with [myDict release] first and eliminate it if
it causes trouble.

Happy New year to all!
Andrea Perego
Univ. of Florence - Phys. Dept.
_______________________________________________
cocoa-dev mailing list | email@hidden
Help/Unsubscribe/Archives: http://www.lists.apple.com/mailman/listinfo/cocoa-dev
Do not post admin requests to the list. They will be ignored.



Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Contact Apple | Terms of Use | Privacy Policy

Copyright © 2007 Apple Inc. All rights reserved.