I am fairly new to objective c and cocoa, however i have spent a lot of time with c++, and I have never run across this issue before.
My application needs to identify a mounted disk by name. Here is the code:
//this code will run whenever a new disk is mounted to the computer
-(void) scanForKindle:(NSNotification *) notification
{
NSMutableArray *mountedDisks = [[NSMutableArray alloc] init];
mountedDisks = [workspace mountedRemovableMedia];
NSMutableArray *ebookDevices = [[NSMutableArray alloc] init];
NSDictionary *fileAttributes = [[NSDictionary alloc] init];
int currentDisk;
for (currentDisk = 0; currentDisk < [mountedDisks count]; currentDisk++)
{
NSLog(@"Name: %@", [mountedDisks objectAtIndex:currentDisk]);
if ([mountedDisks objectAtIndex:currentDisk] == @"/Volumes/Kindle")
{
NSLog(@"Kindle has been identified");
}
}
}
I have gotten everything to work perfectly up to the if statement in the for loop. It simply wont run. any ideas why? I am sure this is a simple fix, but I cannot figure this out for the life of me.
Any help would be greatly appreciated!
That’s because you are making pointer comparison between two different instances of
NSStrings.Do this instead –