1

我正在尝试使用此方法在第一个模态被解除后显示第二个模态......该方法本身工作正常,除了它需要我将对象作为参数传递而我真正想要做的是传递一个UIImageControllerSourceType 代替。我应该使用另一种方法来执行此操作,还是有一种简单的方法可以使 UIImageControllerSourceType 成为对象?我觉得这不应该太难,但我已经挣扎了一段时间了......

- (void)showModalTwoImageSearchViewControllerWithSourceType:(UIImagePickerControllerSourceType *)sourceType {

if (self.modalViewController) {        
    [self performSelector:@selector(showModalTwoImageSearchViewControllerWithSourceType:)
               withObject:sourceType
               afterDelay:0.1f];
    return;
}
// present second modal view - remembering to deal with cases of camera or photo library
if (sourceType == UIImagePickerControllerSourceTypePhotoLibrary) {
    //do one thing
}
// lets assume it was UIImagePickerControllerSourceTypeCamera
else {
    // do something else
}

}

4

2 回答 2

1

UIImagePickerControllerSourceType最终是一个NSUInteger并且您尝试执行的方法(performSelector 方法)仅在其withObject参数中采用 Objective C 对象,而不是 C 类型或指针。

您可以通过NSUIntegers创建一个NSNumber对象并将整数填充到其中来传递。

要创建一个NSNumber对象,您可以像NSNumber'snumberWithUnsignedInteger方法一样轻松地创建一个对象。

于 2012-04-16T13:09:39.337 回答
0

UIImagePickerControllerSourceType 是一个枚举。将其用作对象的最简单方法是将其设为 NSNumber:

NSNumber *n = [NSNumber numberWithInt:sourceType];
于 2012-04-16T13:16:13.540 回答