Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/99.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在回调中更改时未保留变量 我正在制作一个C++游戏,它在某个时候想打开相机。 为此,它与表示模态视图控制器的Objective C类接口: UIImagePickerController* cameraUI = [[UIImagePickerController alloc] init]; cameraUI.sourceType = UIImagePickerControllerSourceTypeCamera; cameraUI.mediaTypes = [[NSArray alloc] initWithObjects:(NSString*)kUTTypeImage, nil]; cameraUI.allowsEditing = YES; cameraUI.delegate = self; [[[[UIApplication sharedApplication] keyWindow] rootViewController] presentModalViewController:cameraUI animated:YES];_Ios_Objective C++ - Fatal编程技术网

Ios 在回调中更改时未保留变量 我正在制作一个C++游戏,它在某个时候想打开相机。 为此,它与表示模态视图控制器的Objective C类接口: UIImagePickerController* cameraUI = [[UIImagePickerController alloc] init]; cameraUI.sourceType = UIImagePickerControllerSourceTypeCamera; cameraUI.mediaTypes = [[NSArray alloc] initWithObjects:(NSString*)kUTTypeImage, nil]; cameraUI.allowsEditing = YES; cameraUI.delegate = self; [[[[UIApplication sharedApplication] keyWindow] rootViewController] presentModalViewController:cameraUI animated:YES];

Ios 在回调中更改时未保留变量 我正在制作一个C++游戏,它在某个时候想打开相机。 为此,它与表示模态视图控制器的Objective C类接口: UIImagePickerController* cameraUI = [[UIImagePickerController alloc] init]; cameraUI.sourceType = UIImagePickerControllerSourceTypeCamera; cameraUI.mediaTypes = [[NSArray alloc] initWithObjects:(NSString*)kUTTypeImage, nil]; cameraUI.allowsEditing = YES; cameraUI.delegate = self; [[[[UIApplication sharedApplication] keyWindow] rootViewController] presentModalViewController:cameraUI animated:YES];,ios,objective-c++,Ios,Objective C++,该类公开一个状态变量,以允许游戏观看模态视图控制器的进度。 它被初始化为: State = CAMERA_ACTIVITY_WORKING; 并由UIImageControllerDelegate功能更新: - (void)imagePickerControllerDidCancel: (UIImagePickerController*) picker { State = CAMERA_ACTIVITY_CANCELED; [[[[UIApplication sharedApplic

该类公开一个状态变量,以允许游戏观看模态视图控制器的进度。 它被初始化为:

State = CAMERA_ACTIVITY_WORKING;
并由UIImageControllerDelegate功能更新:

- (void)imagePickerControllerDidCancel: (UIImagePickerController*) picker
{
  State = CAMERA_ACTIVITY_CANCELED;

  [[[[UIApplication sharedApplication] keyWindow] rootViewController] dismissModalViewControllerAnimated:YES];
  [picker release];
}

- (void)imagePickerController: (UIImagePickerController*) picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
  State = CAMERA_ACTIVITY_IMAGECAPTURED;

  [[[[UIApplication sharedApplication] keyWindow] rootViewController] dismissModalViewControllerAnimated:YES];
  [picker release];
}
模态视图控制器按其应该的方式打开和关闭,代理将被调用。但是,当游戏轮询状态变量时,它似乎还没有更新,并返回“照相机\活动\工作”。 我尝试过使变量不稳定,但没有效果

有人能帮忙吗

编辑:完整类源代码

h


看起来您没有使用自定义的
相机

您创建了一个类

UIImagePickerController* cameraUI = [[UIImagePickerController alloc] init];
设置委托和其他一些项目,并将其显示给用户。但这不是
Camera
类的实例,而是
UIImagePickerController
的实例。我相信你想做什么

Camera* cameraUI = [[Camera alloc] init];
这将为您提供自定义
UIViewController
的实现,但是还有另一个问题。您的
Camera
类不是
UIImagePickerController
的子类,它是
UIViewController
的子类,因此它将不是
UIImagePickerController
。我想你是有意的

@interface Camera : UIImagePickerController<UIImagePickerControllerDelegate, UINavigationControllerDelegate>
@接口摄像机:UIImagePickerController
另一方面,命名约定规定只有类名应该以大写字母开头。方法名称和变量应以小写字母开头

根据评论编辑:

您的
Show
方法似乎没有从任何地方调用,因此我不确定如何使用它。更重要的是,看看这个方法,我不确定它将如何使用。开头的
-
表示它是一个实例方法,只能在
摄影机的实例上调用,但它用于创建和显示
摄影机的实例
,因此该方法需要对象的实例和实例来创建和显示新创建的对象实例。可能不是我们想要的。您可以使用
+
使其成为类方法,并使用
[Camera Show]
调用它,但您无法访问实例变量,因为它们不存在


目前,我看不到有任何地方创建了
摄像头(在
Show
之外)并可能成为活动视图控制器,因此看起来您只是在显示一个通用的
UIImagePickerController
,而不是自定义类。

增强它,并检查是否未在ViewDidDisplay或ViewWillDisplay方法中重置它们?因为当imagePicker关闭时,这些方法将被自动调用。我不能使状态变强,它不是引用,你是指其他方法吗?我没有实现viewDidAppear或viewWillAppearI已修改类Camera以继承UIImagePickerController,而void Show现在使用self而不是分配标准UIImagePickerController,这是对代码的改进,但不幸的是,问题仍然存在。我发现了问题。当我不小心分配了两次Camera类并检查了错误的实例时。(与您的答案类似,但它发生在代码的其他地方)
Camera* cameraUI = [[Camera alloc] init];
@interface Camera : UIImagePickerController<UIImagePickerControllerDelegate, UINavigationControllerDelegate>