FROM : Jason Stephenson
DATE : Thu Jul 03 21:22:35 2008
Chris Paveglio wrote:
> My code is like this:
>
> NSMutableString *theSettings;
> theSettings = [[NSMutableString alloc] init];
>
> //myPrefs is an array of strings, each item is like "Library/Safari"
>
> int i;
> for (i = 0; i < 8; i++
> {
> theSettings = [NSHomeDirectory() stringByAppendingPathComponent:[myPrefs objectAtIndex:i]];
> ....
> }
>
> Thinking about it, do I need the alloc and init commands? Sometimes I am unsure about what needs alloc or init versus what I can just declare as a variable without doing that.
No, you don't. Also, unless you're going to modify settings after
assigning it in your loop, then you should make it a NSString *.
The compiler is likely complaining because you're assigning NSString *
to a NSMutableString *.
If you really need a mutable string then change the assignment line to this:
theSettings = [[NSHomeDirectory()
stringByAppendingPathComponent:[myPrefs objectAtIndex:i]] mutableCopy];
HtH,
Jason
DATE : Thu Jul 03 21:22:35 2008
Chris Paveglio wrote:
> My code is like this:
>
> NSMutableString *theSettings;
> theSettings = [[NSMutableString alloc] init];
>
> //myPrefs is an array of strings, each item is like "Library/Safari"
>
> int i;
> for (i = 0; i < 8; i++
> {
> theSettings = [NSHomeDirectory() stringByAppendingPathComponent:[myPrefs objectAtIndex:i]];
> ....
> }
>
> Thinking about it, do I need the alloc and init commands? Sometimes I am unsure about what needs alloc or init versus what I can just declare as a variable without doing that.
No, you don't. Also, unless you're going to modify settings after
assigning it in your loop, then you should make it a NSString *.
The compiler is likely complaining because you're assigning NSString *
to a NSMutableString *.
If you really need a mutable string then change the assignment line to this:
theSettings = [[NSHomeDirectory()
stringByAppendingPathComponent:[myPrefs objectAtIndex:i]] mutableCopy];
HtH,
Jason






Cocoa mail archive

