我不熟悉目标c。我正在从NSArray
获取数据,并希望根据某些条件返回值。我的代码是:
NSArray *myData;
NSNumber *day = 5;
myData = [NSArray arrayWithObjects: @"5", nil];
for (int i = 0; i < [myData count]; i++) {
if(day == myData[0]){
NSLog(@"date in valueForDay %@ ", da );
return 3;
}
}
以上代码不会执行我的语句(NSLog
和return
一个)。
但是,如果我将日期与任何数字静态比较,它就会执行。喜欢:
NSArray *myData;
NSNumber *day = 5;
myData = [NSArray arrayWithObjects: @"5", nil];
for (int i = 0; i < [myData count]; i++) {
if(day == 5){
NSLog(@"date in valueForDay %@ ", da );
return 3;
}
}
有人可以告诉我我做错了什么吗?
答案 0 :(得分:0)
您使用字符串值而不是数字值创建了数组。这就是为什么数组中的对象是"5"
,它不等于整数5。将数组设为数字数组。
myData = [NSArray arrayWithObjects: @5, nil];
也可以使用indexOfObject
来检查是否有对象,而不是for循环。
NSInteger index = [myData indexOfObject: day];
if(index != NSNotFound) {
return 3;
}
答案 1 :(得分:0)
您将NSString存储在NSArray中。并与NSNumber进行比较。如果有条件,则必须在上面添加一行,然后更改条件。
NSString *myString = [day stringValue];
if([myString isEqualToString:myData[0]])