草庐IT

ios - 重新加载 UITableView 后无法在 cellForRowAtIndexPath 中获取 customTableViewCell 仅在 iPhone5 (ios7) 中崩溃

coder 2024-01-25 原文

我的应用在重新加载 tableview 后崩溃了。

而且这只发生在 iPhone5(iOS7) 设备上。

设备的其余部分工作正常。

显示以下类型的错误:

Terminating app due to uncaught exception 'NSInvalidArgumentException'

为什么只在 iPhone5(iOS7) 上崩溃?

请大家帮帮我..

提前致谢..!!

以下是我得到的整个崩溃报告:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UITableViewCell lblFoodName]: unrecognized selector sent to instance 0x13274160'
*** First throw call stack:
(
    0   CoreFoundation                      0x046e75e4 __exceptionPreprocess + 180
    1   libobjc.A.dylib                     0x033b68b6 objc_exception_throw + 44
    2   CoreFoundation                      0x04784903 -[NSObject(NSObject) doesNotRecognizeSelector:] + 275
    3   CoreFoundation                      0x046d790b ___forwarding___ + 1019
    4   CoreFoundation                      0x046d74ee _CF_forwarding_prep_0 + 14
    5   EatEasily                           0x000b9db5 -[HomeMenuView tableView:cellForRowAtIndexPath:] + 58533
    6   UIKit                               0x0242fd2f -[UITableView _createPreparedCellForGlobalRow:withIndexPath:] + 412
    7   UIKit                               0x0242fe03 -[UITableView _createPreparedCellForGlobalRow:] + 69
    8   UIKit                               0x02414124 -[UITableView _updateVisibleCellsNow:] + 2378
    9   UIKit                               0x024275a5 -[UITableView layoutSubviews] + 213
    10  UIKit                               0x023abdd7 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 355
    11  libobjc.A.dylib                     0x033c881f -[NSObject performSelector:withObject:] + 70
    12  QuartzCore                          0x01cf972a -[CALayer layoutSublayers] + 148
    13  QuartzCore                          0x01ced514 _ZN2CA5Layer16layout_if_neededEPNS_11TransactionE + 380
    14  QuartzCore                          0x01ced380 _ZN2CA5Layer28layout_and_display_if_neededEPNS_11TransactionE + 26
    15  QuartzCore                          0x01c55156 _ZN2CA7Context18commit_transactionEPNS_11TransactionE + 294
    16  QuartzCore                          0x01c564e1 _ZN2CA11Transaction6commitEv + 393
    17  QuartzCore                          0x01c56bb4 _ZN2CA11Transaction17observer_callbackEP19__CFRunLoopObservermPv + 92
    18  CoreFoundation                      0x046af53e __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 30
    19  CoreFoundation                      0x046af48f __CFRunLoopDoObservers + 399
    20  CoreFoundation                      0x0468d3b4 __CFRunLoopRun + 1076
    21  CoreFoundation                      0x0468cb33 CFRunLoopRunSpecific + 467
    22  CoreFoundation                      0x0468c94b CFRunLoopRunInMode + 123
    23  GraphicsServices                    0x0439e9d7 GSEventRunModal + 192
    24  GraphicsServices                    0x0439e7fe GSEventRun + 104
    25  UIKit                               0x0234194b UIApplicationMain + 1225
    26  EatEasily                           0x00003092 main + 130
    27  EatEasily                           0x00003005 start + 53
)
libc++abi.dylib: terminating with uncaught exception of type NSException

我在cellForRowAtIndexPath中的实现代码是:

static NSString *CellIdentifier = @"Cell";

CustomCellHomeMenu *cell;

cell = (CustomCellHomeMenu *)[tblMenu dequeueReusableCellWithIdentifier:CellIdentifier];

if (cell == nil)
{
    [[NSBundle mainBundle] loadNibNamed:@"CustomCellHomeMenu" owner:self
                                    options:nil];
    cell = objHomeMenuCustomCell;
    objHomeMenuCustomCell = nil;
}

之后的任何声明如下:

cell.lblTest.text = @"MyTest";

然后我的应用程序仅在 iPhone5(iOS7) 中崩溃。

最佳答案

我得到了上述崩溃问题的解决方案,但最糟糕的是我不知道它是如何实现的。

if(isIOS7)
{

            cell = (CustomCellHomeMenu *)[tblMenu dequeueReusableCellWithIdentifier:CellIdentifier];

            if (cell == nil)
            {
                [[NSBundle mainBundle] loadNibNamed:@"CustomCellHomeMenu" owner:self
                                            options:nil];
                cell = objHomeMenuCustomCell;
                objHomeMenuCustomCell = nil;
            }
 }

我在 cellForRowAtIndexPath 方法中写了两次上面的代码,这个问题就解决了。

如果你明白为什么要写两次,请告诉我。

关于ios - 重新加载 UITableView 后无法在 cellForRowAtIndexPath 中获取 customTableViewCell 仅在 iPhone5 (ios7) 中崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20395939/

有关ios - 重新加载 UITableView 后无法在 cellForRowAtIndexPath 中获取 customTableViewCell 仅在 iPhone5 (ios7) 中崩溃的更多相关文章

  1. ruby - 如何在续集中重新加载表模式? - 2

    鉴于我有以下迁移:Sequel.migrationdoupdoalter_table:usersdoadd_column:is_admin,:default=>falseend#SequelrunsaDESCRIBEtablestatement,whenthemodelisloaded.#Atthispoint,itdoesnotknowthatusershaveais_adminflag.#Soitfails.@user=User.find(:email=>"admin@fancy-startup.example")@user.is_admin=true@user.save!ende

  2. ruby-on-rails - active_admin 目录中的常量警告重新声明 - 2

    我正在使用active_admin,我在Rails3应用程序的应用程序中有一个目录管理,其中包含模型和页面的声明。时不时地我也有一个类,当那个类有一个常量时,就像这样:classFooBAR="bar"end然后,我在每个必须在我的Rails应用程序中重新加载一些代码的请求中收到此警告:/Users/pupeno/helloworld/app/admin/billing.rb:12:warning:alreadyinitializedconstantBAR知道发生了什么以及如何避免这些警告吗? 最佳答案 在纯Ruby中:classA

  3. ruby - RuntimeError(自动加载常量 Apps 多线程时检测到循环依赖 - 2

    我收到这个错误:RuntimeError(自动加载常量Apps时检测到循环依赖当我使用多线程时。下面是我的代码。为什么会这样?我尝试多线程的原因是因为我正在编写一个HTML抓取应用程序。对Nokogiri::HTML(open())的调用是一个同步阻塞调用,需要1秒才能返回,我有100,000多个页面要访问,所以我试图运行多个线程来解决这个问题。有更好的方法吗?classToolsController0)app.website=array.join(',')putsapp.websiteelseapp.website="NONE"endapp.saveapps=Apps.order("

  4. ruby - 如何验证 IO.copy_stream 是否成功 - 2

    这里有一个很好的答案解释了如何在Ruby中下载文件而不将其加载到内存中:https://stackoverflow.com/a/29743394/4852737require'open-uri'download=open('http://example.com/image.png')IO.copy_stream(download,'~/image.png')我如何验证下载文件的IO.copy_stream调用是否真的成功——这意味着下载的文件与我打算下载的文件完全相同,而不是下载一半的损坏文件?documentation说IO.copy_stream返回它复制的字节数,但是当我还没有下

  5. Ruby 文件 IO 定界符? - 2

    我正在尝试解析一个文本文件,该文件每行包含可变数量的单词和数字,如下所示:foo4.500bar3.001.33foobar如何读取由空格而不是换行符分隔的文件?有什么方法可以设置File("file.txt").foreach方法以使用空格而不是换行符作为分隔符? 最佳答案 接受的答案将slurp文件,这可能是大文本文件的问题。更好的解决方案是IO.foreach.它是惯用的,将按字符流式传输文件:File.foreach(filename,""){|string|putsstring}包含“thisisanexample”结果的

  6. ruby - 在 Ruby 中重新分配常量时抛出异常? - 2

    我早就知道Ruby中的“常量”(即大写的变量名)不是真正常量。与其他编程语言一样,对对象的引用是唯一存储在变量/常量中的东西。(侧边栏:Ruby确实具有“卡住”引用对象不被修改的功能,据我所知,许多其他语言都没有提供这种功能。)所以这是我的问题:当您将一个值重新分配给常量时,您会收到如下警告:>>FOO='bar'=>"bar">>FOO='baz'(irb):2:warning:alreadyinitializedconstantFOO=>"baz"有没有办法强制Ruby抛出异常而不是打印警告?很难弄清楚为什么有时会发生重新分配。 最佳答案

  7. ruby-on-rails - 使用 config.threadsafe 时从 lib/加载模块/类的正确方法是什么!选项? - 2

    我一直致力于让我们的Rails2.3.8应用程序在JRuby下正确运行。一切正常,直到我启用config.threadsafe!以实现JRuby提供的并发性。这导致lib/中的模块和类不再自动加载。使用config.threadsafe!启用:$rubyscript/runner-eproduction'pSim::Sim200Provisioner'/Users/amchale/.rvm/gems/jruby-1.5.1@web-services/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:105:in`co

  8. ruby-on-rails - 从应用程序中自定义文件夹内的命名空间自动加载 - 2

    我们目前正在为ROR3.2开发自定义cms引擎。在这个过程中,我们希望成为我们的rails应用程序中的一等公民的几个类类型起源,这意味着它们应该驻留在应用程序的app文件夹下,它是插件。目前我们有以下类型:数据源数据类型查看我在app文件夹下创建了多个目录来保存这些:应用/数据源应用/数据类型应用/View更多类型将随之而来,我有点担心应用程序文件夹被这么多目录污染。因此,我想将它们移动到一个子目录/模块中,该子目录/模块包含cms定义的所有类型。所有类都应位于MyCms命名空间内,目录布局应如下所示:应用程序/my_cms/data_source应用程序/my_cms/data_ty

  9. Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting - 2

    1.错误信息:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:requestcanceledwhilewaitingforconnection(Client.Timeoutexceededwhileawaitingheaders)或者:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:TLShandshaketimeout2.报错原因:docker使用的镜像网址默认为国外,下载容易超时,需要修改成国内镜像地址(首先阿里

  10. ruby - 将全局 $stdout 重新分配给控制台 - ruby - 2

    我正在尝试将$stdout设置为临时写入一个文件,然后返回到一个文件。test.rb:old_stdout=$stdout$stdout.reopen("mytestfile.out",'w+')puts"thisgoesinmytestfile"$stdout=old_stdoutputs"thisshouldbeontheconsole"$stdout.reopen("mytestfile1.out",'w+')puts"thisgoesinmytestfile1:"$stdout=old_stdoutputs"thisshouldbebackontheconsole"这是输出。r

随机推荐