这是我的代码
NSDictionary *dictionary = [self.tableDataSource objectAtIndex:indexPath.row];
NSArray *Children = [dictionary objectForKey:@"Children"];
NSArray *Title = [dictionary objectForKey:@"Title"];
if([Children count] == 0) {
if(Title =="A #1"){
UIImageView *tmp = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"bg2.png"]];
[dvController.detailImage addSubview:tmp];
[tmp release];
}
我无法比较“标题”,at if(Title == "A #1") ,
给出警告"Compariosn of distinct pointer types lacks a cast"
如何比较条件中的标题。
我也试过了
if([Title isequalToString:@"A #1"])...but its not working for me.
讽刺未提出格式的问题。 问候
答案 0 :(得分:3)
您将Title声明为NSArray *,因此它显然是与字符串不同的类型,无法与字符串进行比较。 (也许这是一个错字?)
也许更像是:
NSString myTitleString = (NSString *)[dictionary stringForKey"@"Title"]
if ( [ myTitleString isEqualToString:@"foo") ] ) { ... }
是你想要的吗?
答案 1 :(得分:3)
您的数据结构看起来很奇怪......您想在该字典中存储什么?
但正如其他人已经说过的那样:如果Title
属于NSArray
,那么与字符串或NSString
相比,你就不会成真。
如果Title
应为NSString
,您可以将其称为:
NSString *title = [dict objectForKey:@"Title"];
if ([title isEqualToString:@"my string"]) { /* do it */ }
答案 2 :(得分:1)
NSArray *Title = [dictionary objectForKey:@"Title"];
标题是NSArray
的类型,“A#1”是NSString
编译器总是100%正确...你无法比较这两个对象,因为它们属于不同的类型
你可能想要像
这样的东西if([[Title objectAtIndex:0] isEqualToString:@"A #1"]])
OR
NSString *Title = [dictionary objectForKey:@"Title"];
if([Title isEqualToString:@"A #1"]])
答案 3 :(得分:1)
如果我理解代码,由于格式化有点困难。您将Title定义为NSArray。如果要进行字符串比较,则需要NSString。所以你要么声明错误类型的“标题”,要么你期望字典中你有字符串的另一个数组。我认为这是第一次。这应该有效:
NSString *titleString = [dictionary objectForKey"@"Title"];
if([titleString isEqualToString:@"A #1"]){
}