On 18 May 2010, at 23:28, Alejandro Marcos Aragón wrote:

> Hi all,
> 
> I've been staring at this piece of code now to try to find out what's wrong 
> with it and I can't think of anything at this point. I'm trying to have a 
> single instance of an NSMutableDictionary inside a class:
> 
> 
> 
> // in .h file
> @interface ClassA : NSObject {
>       
> }
> 
> + (NSMutableDictionary*) uniqueInstance;
> 
> @end
> 
> // in .m file
> @implementation ClassA
> 
> 
> + (NSMutableDictionary*) uniqueInstance {
>               
>       static NSMutableDictionary* uniqueInstance = nil;
you don't actually need '= nil' unless you prefer it.

>               
>       if (uniqueInstance == nil) {
> 
>       // directory to save files
>       NSArray *paths = 
> NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, 
> YES);
>       NSString *dir = [paths objectAtIndex:0];
>       
>       NSFileManager *fileManager = [NSFileManager defaultManager];
uh, this never gets used.

>       
>       NSString *customFilePath = [[NSString alloc] initWithString:
>                                                               [dir 
> stringByAppendingPathComponent:@"dict.plist"]];
nonsense, [dir stringByAppendingPathComponent:@"dict.plist"] by itself is what 
you want.
> 
> 
>                 uniqueInstance = [[NSMutableDictionary alloc] 
> initWithContentsOfFile:customFilePath];
>       }
>       
>       return  uniqueInstance;
> }
> 
> 
> I can't use this code because there is a EXC_BAD_ACCESS according to the 
> debugger.
What's the backtrace? Very hard for us to debug without. Your singleton method 
looks fine provided it's only ever accessed from a single thread at a time. 
From my comments above, sure you've posted all the relevant code?
> 
> I tried moving the definition of the uniqueInstance outside the function and 
> that didn't help. This code seems alright to me, but I can't find why it 
> doesn't work. Can someone point out the problem?
> 
> aa
> 
> _______________________________________________
> 
> Cocoa-dev mailing list ([email protected])
> 
> 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/cocoadev%40mikeabdullah.net
> 
> This email sent to [email protected]

_______________________________________________

Cocoa-dev mailing list ([email protected])

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/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to