- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
不确定是否有人知道不断重用的 UITableViewCell 数量是否存在实际限制......?首先,我非常了解所有 Obj-C/Apple 内存管理规则,(我将首先声明这一点,这样我不会浪费任何人的时间,他们也不会浪费我的时间)
所以我会直接问这个...关于重用 UITableViewCell 所附加的“自动释放”机制是否有一些实际限制...?因为我似乎只在一定数量后才遇到崩溃,通常超过 50 页的单元格(大约 50 页 + 50 个单元格)被翻转......然后不知从何而来我会遇到这个崩溃......有时永远不会会发生,有时会发生得很频繁,具体取决于内容密度......
我自己开始手动保留和释放会更好吗?如果是的话,有人有经验可以推荐一个放生的好地方吗?
[tableview tableView:cellForRowAtIndexPath:]: message sent to deallocated instance 0x14e0a920
好吧....我找不到与实际 UITableViewCell (单元格内容或单元格本身)有关的任何内容,但是在向 Controller (实例化 UITableView 对象)添加一些保留后,“崩溃”神秘地停止出现...
这是我改变的。基本上我添加了三个 Retain 语句,顺便说一句,我使用了自称“Iphone 专家”的“如何”-“UITabBarController”的原始示例教程,但“专家”否定了包含保留......(这只是代码的适用部分...)
//initialize the UITabBarController
tabBarController = [[UITabBarController alloc] init];
TabBarControllerSet = TRUE;
//Create the first UITabBarItem
MainMessageBoard *mainMessageBoard = [[MainMessageBoard alloc] initWithController: self];
[mainMessageBoard setTitle:@"?????"];
[mainMessageBoard retain]; ////******** ADDED This RETAIN ***********
//Create the second UITabBarItem
PostNewComment *postNewComment = [[PostNewComment alloc] initWithController: self];
[postNewComment setTitle:@"????"];
[postNewComment retain]; ////******** ADDED This RETAIN ***********
//Create the third UITabBarItem
logout *Logout = [[logout alloc] initWithController: self];
[Logout setTitle:@"?????"];
[Logout retain]; ////******** ADDED This RETAIN ***********
//add the UIViewControllers to the UITabController
tabBarController.viewControllers = [NSArray arrayWithObjects:mainMessageBoard, postNewComment, Logout, nil];
[tabBarController setDelegate:self];
//release
[mainMessageBoard release];
[postNewComment release];
[Logout release];
[self.view addSubview:tabBarController.view];
最佳答案
据我所知,它仅受设备上可用内存的限制 - 我假设它在自动释放池和 TableView 的可重用单元格中使用某种动态集(即 NSSet 或较低级别的等效项)。
我已经使用了包含数万行的 TableView ,没有任何问题。
关于iphone - UITableViewCell AutoRelease 导致崩溃...?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5908690/
当我们编写 [Obj autorelease] 时会发生什么? 例如: NSAutoreleasePool *pool = [[NSAutoreleasePool alloc]init]; NSM
执行下面的代码会发生什么? Ball *ball = [[[[Ball alloc] init] autorelease] autorelease]; 最佳答案 让我们分解一下: [Ball allo
我有一个运行良好的应用程序。然后我尝试将导航 Controller 嵌入到 tabbarcontroller 中,接下来我知道我在编译过程中开始遇到这些错误。 有人知道为什么会这样吗?某些设置是否被意
在我使用 autorelease 的大部分代码中,对象最终从函数返回。显然 release 不能在此时调用,而 autorelease 是要走的路。然而,在对象将要传递给另一个将保留它的对象的情况下,
我希望开发一个应用程序,其中将根据用户的交互创建“n”个 View 。如果这些 View 中的每一个都是使用 autorelease 动态创建的,那么该 View 何时会真正被释放? 假设有 10 个
在手动内存管理中,你会在哪些场景下进行自动释放 我想做好充分的准备,因为我即将进行一个不使用 ARC 的项目 最佳答案 当您需要从方法返回一个对象并同时放弃所有权时,您通常会使用 autoreleas
- (void)foo { @try { for (id o in os){ @autoreleasepool {
不确定是否有人知道不断重用的 UITableViewCell 数量是否存在实际限制......?首先,我非常了解所有 Obj-C/Apple 内存管理规则,(我将首先声明这一点,这样我不会浪费任何人的
或者:这个 UILabel 用法怎么可能生成 NSMutableDictionary NSInvalidArgumentException? 这是一个非 ARC iOS 应用程序。当 showLabe
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: Im getting this error ‘autorelease’ is unavailable: no
我正在尝试将旧代码转换为 ARC 代码。但是,我在以下行收到构建错误 [[token retain] autorelease]; 我按以下顺序收到 3 个错误: -'autorelease'不可用:在
我正在为 iPhone、objective-c 开发。当我们使用自动释放时,对象什么时候真正被释放——当主自动释放池被释放时(即应用程序终止?),或者当本地函数结束时?例如,我想做这样的事情: - (
抱歉,我是 cocoa 编程的新手,我不确定我是否真正理解 nsautoreleasepool 的工作原理。 我读到的所有地方都说 NSAutoreleasePool 负责所有自动释放调用(谈论最后声
我有一个简单的函数,在解码后返回一个 NSString 。我在我的应用程序中经常使用它,每次使用它时,它似乎都会造成内存泄漏(根据“泄漏”工具)。 Leaks 告诉我问题出在我分配要返回的 NSStr
我的应用程序结构如下,核心部分是用 C++ 编写的,并大量使用线程,我正在其上用 Objective C 开发 UI,如果我不执行线程,它工作正常,但我无法禁用、停止线程,UI 在日志中随机崩溃,我可
我的 TableView 有一个自定义单元格,它是我使用界面生成器设计的。在它的 .m 文件中,我有一些这样的代码来从自定义单元格的包中获取 xib。 - (id)initWithStyle:(UIT
我是 IOS 开发的新手,我已经开始学习 objective-c 以针对 IOS 7 进行编程。据我所知,由于自动引用计数,现在编码比以前容易得多。有几件事我不明白。在 MAIN 方法中我们有 aut
假设以下代码, NSString *str=[[NSString alloc] initWithString:@"sagar"]; [str autorelease]; 我多次看到,大多数程序员确实更
clang 允许以下循环语法: for (...) @autorelease { ... } while (...) @autorelease { ... } do @autorelease { ..
从今天早上开始,当我尝试在一个带有 git 实例的项目上使用 gitk 时,它给了我以下错误。从今天起我就再也没有发生过这种情况,而且我已经使用 gitk 几个月了。 我能指出的唯一区别是,今天早上,
我是一名优秀的程序员,十分优秀!