我目前正在开发一款在 iOS 6 上运行的 iPad 应用
我在我的应用程序中实现了 UIImagePickerController 的子类,它通过覆盖 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 和 - (NSUInteger) 强制相机处于横向)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window 函数。
似乎有一个随机的机会,即在通过 presentViewController 启动图像选择器时,它会出现在相机“加载”屏幕上。那个看起来像关闭的相机快门。该应用程序将在此屏幕上卡住,除非您退出它或锁定/解锁屏幕,之后它将正常运行。
我还有一个用于相机 View 的自定义 UI。但是,我在添加之前就注意到了这个问题,所以我认为这无关紧要。
这是我必须打开选择器的内容:
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
self.modalController = [[CameraLandscapeImagePicker alloc] init];
self.modalController.delegate = self;
self.modalController.sourceType = UIImagePickerControllerSourceTypeCamera;
self.modalController.mediaTypes = [NSArray arrayWithObjects:(NSString *) kUTTypeImage, nil];
self.modalController.allowsEditing = NO;
[self.viewController presentViewController:modalController animated:YES completion:nil];
//add the overlaying view ui
[self.modalController buildCustomOverlay];
self.newMedia = YES;
}
感谢任何帮助。
[编辑] - 更新: 我已经设法弄清楚如何有意地复制这个问题。以下是步骤:
我还注意到它甚至在连接到 xcode 时也会发生。
我修改了我的代码,以便通过单例提供 UIImagePickerController 对象。以前我每次都创建一个新的 UIImagePickerController 对象。这没有任何效果,我仍然遇到同样的问题。 我已经让应用程序在快门屏幕上运行了大约 5 分钟,但它仍然卡住了。
最佳答案
我终于弄明白问题出在哪里了。
在我作为 UIImagePicker 的 cameraOverlayView 添加的自定义 UI View 中,我有一个自定义 NavigationBar View 。
此 View 将其委托(delegate)设置为 UIImagePicker,并使用 retain 委托(delegate)属性。
最后是一个词从“retain”改成“assign”来解决:
@property (nonatomic,assign) id delegate;
如果您遇到与此类似的问题,我建议您注释掉您的自定义 UI 代码的一部分,以查看到底是什么导致了问题。
关于iOS UIImagePickerController 在打开时卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12889860/
我是Ruby新手,在Ubuntu12.04机器上安装了Ruby1.9.3。每当我在终端中不带任何参数地运行ruby命令时,它就会挂起并且什么都不做。它在我的WindowsXP安装上做同样的事情。这是预期的行为吗?来自Python/Java背景,我期待某种输出。 最佳答案 这是预料之中的。当您只运行ruby时,它会停在那里,等待来自STDIN的程序,后跟一个文件结束符,然后执行该程序。如果你想要交互,比如当你运行python时,你需要Ruby的irb。 关于ruby-使用不带参数的'rub
这是什么意思?在一个项目的说明中,它说“卡住Railsgems”。这与卡住Rails版本有何不同?什么是卡住? 最佳答案 如果您使用的gem的作者之一引入了该gem的新版本,则新版本可能会引入向后不兼容的更改,从而破坏您的代码。卡住gem会将其放入应用程序的vendor文件夹中,并且不会自行自动更新。Rails将使用此版本的gem。这允许您为其他应用程序更新系统上的gem,同时让您唯一的应用程序使用您一直使用的gem版本,因此是稳定的。这也适用于railsgem本身,因为较新版本的rails最终可能会导致您的应用程序中的某些内容崩溃
考虑一下rubocop报告的这个罪行lib/awesomelib/aws.rb:6:10:C:Style/MutableConstant:Freezemutableobjectsassignedtoconstants.IP='34.111.241.111'^^^^^^^^^^^^^^^^我为什么要卡住这个IP地址? 最佳答案 您应该卡住分配给IP的值,因为您已将IP声明为常量。这表示您不希望分配给IP的值发生变化。问题在于,在ruby中,为常量赋值并不能使该值不可变。如果您改变分配给常量的值,您只会收到警告。要使值实际上不可变,
这个问题在这里已经有了答案:+=operatorappearstomodifyfrozenstring(2个答案)关闭6年前。我正在学习Ruby,我刚刚发现在使用带变量的Object#freeze方法时有一些有趣的行为。在我卡住一个变量(Fixnum或Array)之后,我仍然可以修改它!这很奇怪,因为就我而言这不应该发生并且应该引发TypeError。这是我的代码:test=666var=90#okvar+=5puts"var.frozen?#{var.frozen?}"var.freezeputs"var.frozen?#{var.frozen?}"var=testputs"var=
在Ruby1.9中你可以有Fixnum,Float,和Symbol未卡住或卡住的值:irb(main):001:0>a=[17,42.0,:foo];a.map(&:frozen?)=>[false,false,false]irb(main):002:0>a.each(&:freeze);a.map(&:frozen?)=>[true,true,true]我了解卡住字符串、数组或其他可变数据类型的实用性。然而,据我所知,Fixnum,Symbol,和Float实例从一开始就是不可变的。是否有任何理由卡住它们(或者Ruby不会报告它们的任何原因frozen?请注意,在Ruby2.0中Fi
我正在使用ruby卡住方法。就卡住的定义而言,它卡住调用它的对象的值。我们不能在它之后修改那个对象的值。我必须完成相同的任务,我有一个对象并且正在执行以下代码a="Test"a.freezea+="thisstring"putsa输出如下:Testthisstring[Finishedin0.0s]为什么要修改我卡住的字符串? 最佳答案 没有任何东西正在修改你卡住的String您正在将a重新分配给一个新的Stringa+="thisstring"在Ruby中与内部相同a=a+"thisstring"当您在Ruby中添加两个Str
我们可以很容易地从许多著名的存储库中找到这样的样式,例如rack、rails等。Forexampleinrack:PATH_INFO='PATH_INFO'.freezeREQUEST_METHOD='REQUEST_METHOD'.freezeSCRIPT_NAME='SCRIPT_NAME'.freezeQUERY_STRING='QUERY_STRING'.freezeCACHE_CONTROL='Cache-Control'.freezeCONTENT_LENGTH='Content-Length'.freezeCONTENT_TYPE='Content-Type'.freez
我理解字符串和符号之间的理论区别。我知道符号是用来表示一个概念或名称或标识符或标签或键,而字符串是一包字符。我知道字符串是可变的和transient的,而符号是不可变的和永久的。我什至喜欢Symbols看起来在我的文本编辑器中与Strings的不同。令我困扰的是,实际上,Symbols与Strings非常相似,以至于它们没有像Strings那样实现这一事实引起了很多麻烦。它们甚至不支持鸭子类型或隐式强制转换,这与其他著名的“相同但不同”的组合Float和Fixnum不同。当然,最大的问题是从其他地方(如JSON和HTTPCGI)进入Ruby的散列使用字符串键,而不是符号键,因此Ruby
根据specification,用作哈希键的字符串被复制并卡住。其他可变对象似乎没有这种特殊考虑。例如,对于数组键,以下是可能的。a=[0]h={a=>:a}h.keys.first[0]=1h#=>{[1]=>:a}h[[1]]#=>nilh.rehashh[[1]]#=>:a另一方面,类似的事情不能用字符串键来完成。s="a"h={s=>:s}h.keys.first.upcase!#=>RuntimeError:can'tmodifyfrozenString当涉及到哈希键时,为什么字符串被设计成与其他可变对象不同?是否存在该规范有用的用例?该规范还有哪些其他后果?我实际上有一个用
我是Rails的新手。我正在使用“Rubocop”来检查标准,但是我对它检查“卡住字符串文字”的方式感到困扰。它一直在我的文件上说:Missingfrozenstringliteralcomment.有没有办法在rubocop上禁用对此的检查?还是禁用它是个坏主意?我在rubocop.yml上试过这个但是没用frozen_string_literal:false 最佳答案 这个对我有用Style/FrozenStringLiteralComment:Enabled:false 关于rub