iOS: ActionSheetStringPicker successAction: 错误的选择
iOS: ActionSheetStringPicker successAction: wrong selection
我正在使用 ActionSheetPickers3.0 中的 ActionSheetStringPicker(因为 iOS 8,我不能再使用旧的选择器视图)。这就是我调用方法的方式:
ActionSheetStringPicker *genderPicker = [[ActionSheetStringPicker alloc]
initWithTitle:@"Gender" rows:categoryTypes initialSelection:nil target:self
successAction:@selector(selectedGender:) cancelAction:@selector(cancelledGender)
origin:gender];
[genderPicker showActionSheetPicker];
我的成功操作代码是这样的:
-(void) selectedGender:(NSNumber *)genderSelected {
NSLog(@"selected gender: %@",genderSelected);
if (genderSelected == 0) {
NSLog(@"male");
gender.text = @"Male";
} else {
NSLog(@"female");
gender.text = @"Female";
}
}
当我 NSLog genderSelected 值时,我从 selected 性别 (male/female) 得到 1 或 0 值。我的问题是,在我的 if 语句中,它总是说我选择了女性。我从选择器中得到 select 的正确值,但似乎无法弄清楚问题出在哪里。有谁知道如何让我的 if 语句工作?谢谢!
好吧,这不是我想要的,但它确实有效。我将获得的 NSNumber 设置为 NSString,然后与“0”和“1”字符串进行比较。这是我的解决方案:
-(void) selectedGender:(NSNumber *)genderSelected {
NSString *string = [NSString stringWithFormat:@"%@",genderSelected];
if ([string isEqualToString:@"0"]) {
NSLog(@"male");
} else if ([string isEqualToString:@"1"]) {
NSLog(@"female");
}
}
在您的成功回调方法中,您获取的参数是 NSNumber 类型。您不能直接将 NSNumber 类型的对象与 int 值 0 进行比较。因此请使用以下内容:
if (genderSelected.intValue == 0) {
NSLog(@"male");
gender.text = @"Male";
} else {
NSLog(@"female");
gender.text = @"Female";
}
我正在使用 ActionSheetPickers3.0 中的 ActionSheetStringPicker(因为 iOS 8,我不能再使用旧的选择器视图)。这就是我调用方法的方式:
ActionSheetStringPicker *genderPicker = [[ActionSheetStringPicker alloc]
initWithTitle:@"Gender" rows:categoryTypes initialSelection:nil target:self
successAction:@selector(selectedGender:) cancelAction:@selector(cancelledGender)
origin:gender];
[genderPicker showActionSheetPicker];
我的成功操作代码是这样的:
-(void) selectedGender:(NSNumber *)genderSelected {
NSLog(@"selected gender: %@",genderSelected);
if (genderSelected == 0) {
NSLog(@"male");
gender.text = @"Male";
} else {
NSLog(@"female");
gender.text = @"Female";
}
}
当我 NSLog genderSelected 值时,我从 selected 性别 (male/female) 得到 1 或 0 值。我的问题是,在我的 if 语句中,它总是说我选择了女性。我从选择器中得到 select 的正确值,但似乎无法弄清楚问题出在哪里。有谁知道如何让我的 if 语句工作?谢谢!
好吧,这不是我想要的,但它确实有效。我将获得的 NSNumber 设置为 NSString,然后与“0”和“1”字符串进行比较。这是我的解决方案:
-(void) selectedGender:(NSNumber *)genderSelected {
NSString *string = [NSString stringWithFormat:@"%@",genderSelected];
if ([string isEqualToString:@"0"]) {
NSLog(@"male");
} else if ([string isEqualToString:@"1"]) {
NSLog(@"female");
}
}
在您的成功回调方法中,您获取的参数是 NSNumber 类型。您不能直接将 NSNumber 类型的对象与 int 值 0 进行比较。因此请使用以下内容:
if (genderSelected.intValue == 0) {
NSLog(@"male");
gender.text = @"Male";
} else {
NSLog(@"female");
gender.text = @"Female";
}