小编Ari*_*sky的帖子

EAGL:它究竟代表什么?

我忘记了,但EAGL是否代表任何特定的东西?或者它只是Core Animation OpenGL命名约定(CAEAGLLayer等)的一部分?

iphone opengl-es

17
推荐指数
1
解决办法
7363
查看次数

自定义iPhone相机控件(不使用UIImagePickerController)

虽然我明白,为了在App Store上接受iPhone应用程序,一个要求是只使用文档化的库.

如果是这种情况,某些应用程序如"夜间摄像机"和"摄像机+"如何使用摄像机控件似乎不同于UIImagePickerController中包含的摄像机控件?

我听说过某些情况,开发人员已经获得某些标题的"特殊"访问权限,这些标题允许在仅限于使用文档库的情况下无法实现的功能.但是,考虑到应用程序选择过程对App Store的不透明程度,我更愿意坚持推荐而不是抓住机会.

有人愿意对此有所了解吗?

camera ios

13
推荐指数
2
解决办法
2万
查看次数

UIViewController内存泄漏问题

类似于有关创建和销毁UIImagePickerController实例的已知内存泄漏问题,我发现有关UIViewController类实例的类似问题.使用UIImagePickerController的推荐方法是创建一次实例并在应用程序的生命周期内保留它,尽管这会耗尽您在其他地方可能需要的内存.

我正在处理的情况涉及UIViewController类的2个实例.启动时,将创建第一个实例,并将其视图添加到另一个"main"UIViewController类,该类是MainWindow.xib的一部分.在第一个实例中是一个"信息"按钮,当点击时,切换到UIViewController类的新实例(如果尚未创建)."main"UIViewController使用通常的翻转动画来管理这种切换.基本设置可以在Dave Mark的"开始iPhone开发:探索iPhone SDK"一书中看到.

出现的问题是,一旦第一次点击"info"按钮,就会将内存分配给新的第二个UIViewController实例,并且在应用程序结束之前不会释放内存.由于此信息视图中的元素数量,一旦实例化它将使用大约1MB的内存,并且其视图将添加到超级视图中.任何一致地销毁和重新创建此实例的尝试都会导致内存泄漏,类似于当您尝试对UIImagePickerController类的实例执行相同操作时存在的内存泄漏.我怀疑两个类之间的根本原因是相同的.

我的问题的关键在于,在允许用户使用相机拍照之前,需要释放尽可能多的内存.但是,一旦用户拍照并且他们第一次看到结果图像,他们就可以点击第一个UIViewController实例上存在的"info"按钮.点击后,"main"UIViewController将删除现有的UIViewController视图,并将其替换为信息屏幕的视图.信息屏幕有一个"后退"按钮,可以将视图切换回来.但是,一旦用户离开信息屏幕并选择用相机拍摄另一张照片,分配给信息屏幕的内存仍然在内存中.

UIImagePickerController类临时使用大约15-18MB,同时在释放内部引用之前处理200万像素图像并调用"imagePickerController:didFinishPickingImage"委托.一旦通过信息按钮创建了第二个UIViewController实例,然后用户选择拍摄另一张照片,我就会遇到低内存警报.

无论你是否在我的情况下点击信息按钮一遍又一遍地拍摄照片,技术上都没有泄漏,但是由于你无法控制的iPhone(Safari等)背景处理的其他问题,你必须免费使用像相机这样的东西时,尽可能多的内存.

关于如何干净地创建和销毁UIViewController类的实例以使内存不泄漏的任何建议?

iphone camera memory-management

9
推荐指数
1
解决办法
4371
查看次数

Objective-C内存问题(iPhone)

我在为iPhone模拟器(或设备)编译的Xcode项目中看到的以下行为让我感到困惑:

NSString *test = [[NSString alloc] initWithCString:"foo"];

NSLog(@"test retain count = %d", [test retainCount]); // prints 1

[test release];

NSLog(@"test retain count = %d", [test retainCount]); // also prints 1 instead of 0
Run Code Online (Sandbox Code Playgroud)

但是,任何进一步尝试访问'test'都会导致Xcode环境崩溃,无论是另一个[test retainCount]NSLog语句还是其他方式(即使只检查测试是否等于nil).

思考?在一个简单的基于视图的测试项目中编译...代码存在于项目的applicationDidFinishLaunching方法中.

澄清 - 我知道不要在实践中做上述事情.这只是一个测试,看看为什么在某些调试情况下,保留计数为1实际上并不反映对象的实际状态.谢谢你的回复.这只是一个测试存根,看看为什么我在一些情况下看到某些行为.我真正想要做的是追踪每当我销毁/重新创建自定义视图时始终创建的非常小的内存泄漏(0.06MB).

iphone memory-management objective-c

2
推荐指数
2
解决办法
1164
查看次数

标签 统计

iphone ×3

camera ×2

memory-management ×2

ios ×1

objective-c ×1

opengl-es ×1