我在比較objective-c中的兩個字符串對象時遇到了問題。這裏是我的情況:如何比較objective-c中的字符串?
我有我的看法控制器配備了兩個NSString對象爲在我的代碼所示按照以下,在我的.h文件中:
@property(nonatomic,retain) NSString *detailFacility;
在viewDidLoad中功能我.m文件
:
- (void)viewDidLoad
{
NSData *facilityZoneURL = [NSData dataWithContentsOfURL:[NSURL URLWithString:[NSString stringWithFormat:@"some URL..."]]];
NSError *error;
NSDictionary *facilityZoneDict = [NSJSONSerialization JSONObjectWithData:facilityZoneURL options:kNilOptions error:&error];
NSArray *facilityZoneData = [facilityZoneDict objectForKey:@"Data"];
if (![facilityZoneData isKindOfClass:[NSArray class]]) {
//JSON does not returned the Dictionary;
}
facilityZoneArray = [[NSMutableArray alloc] init];
NSLog(@"%@",detailFacility);
for (NSDictionary *item in facilityZoneData) {
NSString *zoneFacilityID = [NSString stringWithFormat:@"%@",[item objectForKey:@"FacilityId"]];
NSLog(@"Facility ID: %@ --- Zone ID: %@",detailFacility,zoneFacilityID);
NSLog(@"%@",[zoneFacilityID isEqualToString:detailFacility]? @"YES" : @"NO");
if ([zoneFacilityID isEqualToString:detailFacility]) {
NSLog(@"object added");
}
}
但問題是它沒有比較字符串,因爲它肯定會匹配某些位置。
這裏是我的NSLog情況:
2012-04-02 12:12:42.998 CarbonIndex[11078:207] Facility ID: 1056 --- Zone ID: 1056
2012-04-02 12:12:42.999 CarbonIndex[11078:207] NO
正如你可以看到,無論是字符串的精確匹配,但如果條件不執行,告訴我,我在這很想念。
是detailFacility和NSString?我沒有看到它的聲明。沒關係。我剛看到它。 – DRVic 2012-04-02 16:37:49
這可能是一個編碼問題。您從JSON對象獲取設施ID,即使它們記錄相同,該字符串的編碼是否可能與應用定義的字符串不同? – rdelmar 2012-04-02 16:43:15
[如何比較objective-c中的字符串對象](http://stackoverflow.com/questions/9979399/how-to-compare-string-objects-in-objective-c) – 2012-04-02 17:30:02