Category Archives: 错误分析(iOS)

Snapshotting a view that has not been rendered results in an empty snapshot. …

错误代码:Snapshotting a view that has not been rendered results in an empty snapshot. Ensure your view has been rendered at least once before snapshotting or snapshot after screen updates.

问题分析:iOS8在调用系统相机拍照时,会有一两秒的停顿,然后再弹出UIImagePickConroller,IOS7是没有这个问题的,在百度找了无数遍都没能解决这个问题,有说要将imagePickController设置为全局变量,有说要延时0.5秒再presentViewController的,各显神通,但很遗憾的都没能解决这个问题,今天特意单独写个Demo来研究此问题,终于取得了突破性的进展!

其实根本原因不在于系统拍照控制器上面,而是执行presentViewController这个动作本身!我们可以查看下UIViewController这个类,他有一个属性

1
@property(nonatomic,assign) UIModalPresentationStyle modalPresentationStyle NS_AVAILABLE_IOS(3_2);

[……]

继续阅读

Xcode Attaching to 卡死问题!

官方给的解释:

In xcode 4.2, sometimes when you’re going to run your ios proj on simulator, the status windows says “Attaching to myapp”, and just gets stuck there… until you cancel. Now, this has been asked before:XCode 4 hangs at “Attaching to (app name)”

and surprisingly, besides the accepted answer on that thread, there are at least 10 other possible solutions others have been adding, all for the same issue, people says one of them worked while the others didn’t…

please note, this is not a sequence of steps. each one is a possible solution:

1- restart xcode and/or restart simulator (reset content and settings) and/or restart computer.

2- click on project name in project navigator. in build settings tab, go to packaging and make sure that “Product Name” is the same that the one xcode says simulator is attaching to when running. if they are different, it will fail.

3- go to your projectname.xcodeproj folder. inside there delete anything named with your userid. when you reopen xcode those files will be recreated and it should work…

4- Manually delete the build directory for your project.

5- Go to organizer window. select Projects, select your app in the left hand side and then delete over “Derived Data”

6- Check Launch option is set to “Automatically” in Product->Edit Scheme, “Run” scheme.

7- In Project->”Edit Schemes”->Run. Change the Debugger from GDB to None (this doesn’t make sense to me..).

8- Kill the process gdb-i386-apple-darwin from Activity Monitor. this is assuming gdb is not responding.

9- In “Product”->Edit Scheme. in Run, click yourappname.app, choose other, navigate to your .app in your project. now run.

10- Check that you don’t have two different Info.plist in your project. if you do, remove the bad one.

Google翻译如下:[……]

继续阅读