I\'ve been struggling with a simple comparison but I can\'t get it to work. I´m reading a XML file and I need to compare data from it in order to show the right picture.
If the larmClass
property is a string, make sure that it is actually one character in length (i.e. it doesn't have any leading or trailing whitespace that was accidentally included when parsing the XML). If the larmClass
property truly is an NSString
containing the letter ‘A’ then [aLarm.larmClass isEqualToString:@"A"]
will return YES
.
Do a:
NSLog(@"%u, %@", [aLarm.larmClass length], aLarm.larmClass);
and just make sure that it shows “1, A
”.
You can use the NSString compare: methods. For example:
if ([myString caseInsensitiveCompare:@"A"] == NSOrderedSame ) {
NSLog(@"The same");
} else {
NSLog(@"Not the same.");
}
The result is an NSComparisonResult which is just an enum with types NSOrderedSame, NSOrderedAscending and NSOrderedDescending.
Check the documentation on the various compare: methods here.
Of course, if the receiver is actually an NSString, then isEqualToString: should also work. So if you're trying to compare a class name (aLarm.larmClass ??), then you can call:
if ([NSStringFromClass([aLarm class]) isEqualToString:@"A"] ) {
NSLog(@"The same");
}