草庐IT

iOS - UILabel 属性的异常设置文本

coder 2024-01-25 原文

我在我的一个 View Controllers 中遇到了一个奇怪的问题,每件事都工作正常并且加载正常但是每当我为 View 设置一个值时我得到一个异常层相关。但是,我没有在 Interface Builder 或代码中为 Layer 设置任何属性。下面是我收到的日志,现在对我来说毫无意义

-[__NSCFNumber length]: unrecognized selector sent to instance 0x923a4e0
 *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFNumber length]: unrecognized selector sent to instance 0x923a4e0'
*** First throw call stack:
(
    0   CoreFoundation                      0x01ef31e4 __exceptionPreprocess + 180
    1   libobjc.A.dylib                     0x01bf08e5 objc_exception_throw + 44
    2   CoreFoundation                      0x01f90243 -[NSObject(NSObject) doesNotRecognizeSelector:] + 275
    3   CoreFoundation                      0x01ee350b ___forwarding___ + 1019
    4   CoreFoundation                      0x01ee30ee _CF_forwarding_prep_0 + 14
    5   UIKit                               0x00a6d463 -[UILabel _shadow] + 45
    6   UIKit                               0x00a6e8c2 -[UILabel drawTextInRect:] + 70
    7   UIKit                               0x00a70dfc -[UILabel drawRect:] + 98
    8   UIKit                               0x0091f453 -[UIView(CALayerDelegate) drawLayer:inContext:] + 504
    9   QuartzCore                          0x00213f39 -[CALayer drawInContext:] + 123
    10  QuartzCore                          0x00213e6a _ZL16backing_callbackP9CGContextPv + 96
    11  QuartzCore                          0x001024fc CABackingStoreUpdate_ + 2656
    12  QuartzCore                          0x00213e02 ___ZN2CA5Layer8display_Ev_block_invoke + 93
    13  QuartzCore                          0x002482d7 x_blame_allocations + 15
    14  QuartzCore                          0x00213c6d _ZN2CA5Layer8display_Ev + 1519
    15  QuartzCore                          0x00213eb9 -[CALayer _display] + 33
    16  QuartzCore                          0x00213676 _ZN2CA5Layer7displayEv + 144
    17  QuartzCore                          0x00213e93 -[CALayer display] + 33
    18  QuartzCore                          0x00210fb7 -[CALayer displayIfNeeded] + 57
    19  QuartzCore                          0x002113b1 -[CALayer renderInContext:] + 192
    20  QuartzCore                          0x00213376 -[CALayer _renderSublayersInContext:] + 413
    21  QuartzCore                          0x002118bc -[CALayer renderInContext:] + 1483
    22  QuartzCore                          0x00213376 -[CALayer _renderSublayersInContext:] + 413
    23  QuartzCore                          0x002118bc -[CALayer renderInContext:] + 1483
    24  QuartzCore                          0x00213376 -[CALayer _renderSublayersInContext:] + 413
    25  QuartzCore                          0x002118bc -[CALayer renderInContext:] + 1483
    26  SilverStar                          0x00011fad -[UIView(ABExtras) imageInNavController:] + 525
    27  SilverStar                          0x00013005 -[CubeNavigationController pushViewController:animated:] + 549
    28  SilverStar                          0x0000c936 -[MSArticleViewController detailsbuttonTapped:] + 438
    29  libobjc.A.dylib                     0x01c02880 -[NSObject performSelector:withObject:withObject:] + 77
    30  UIKit                               0x008b23b9 -[UIApplication sendAction:to:from:forEvent:] + 108
    31  UIKit                               0x008b2345 -[UIApplication sendAction:toTarget:fromSender:forEvent:] + 61
    32  UIKit                               0x009b3bd1 -[UIControl sendAction:to:forEvent:] + 66
    33  UIKit                               0x009b3fc6 -[UIControl _sendActionsForEvents:withEvent:] + 577
    34  UIKit                               0x009b3243 -[UIControl touchesEnded:withEvent:] + 641
    35  UIKit                               0x00c482e3 _UIGestureRecognizerUpdate + 7166
    36  UIKit                               0x008f1a5a -[UIWindow _sendGesturesForEvent:] + 1291
    37  UIKit                               0x008f2971 -[UIWindow sendEvent:] + 1021
    38  UIKit                               0x008c45f2 -[UIApplication sendEvent:] + 242
    39  UIKit                               0x008ae353 _UIApplicationHandleEventQueue + 11455
    40  CoreFoundation                      0x01e7c77f __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 15
    41  CoreFoundation                      0x01e7c10b __CFRunLoopDoSources0 + 235
    42  CoreFoundation                      0x01e991ae __CFRunLoopRun + 910
    43  CoreFoundation                      0x01e989d3 CFRunLoopRunSpecific + 467
    44  CoreFoundation                      0x01e987eb CFRunLoopRunInMode + 123
    45  GraphicsServices                    0x036c25ee GSEventRunModal + 192
    46  GraphicsServices                    0x036c242b GSEventRun + 104
    47  UIKit                               0x008b0f9b UIApplicationMain + 1225

注意:我不确定您可能需要哪个代码部分。所以,让我知道我会在这里添加问题

最佳答案

您正在传递 NSNumber 而不是 NSString。试试这个:

NSString *myString = [aNumber stringValue]; // aNumber is a NSNumber
self.label.text = myString

希望这会有所帮助..:)

关于iOS - UILabel 属性的异常设置文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23100286/

有关iOS - UILabel 属性的异常设置文本的更多相关文章

  1. ruby - 使用 ruby​​ 将 HTML 转换为纯文本并维护结构/格式 - 2

    我想将html转换为纯文本。不过,我不想只删除标签,我想智能地保留尽可能多的格式。为插入换行符标签,检测段落并格式化它们等。输入非常简单,通常是格式良好的html(不是整个文档,只是一堆内容,通常没有anchor或图像)。我可以将几个正则表达式放在一起,让我达到80%,但我认为可能有一些现有的解决方案更智能。 最佳答案 首先,不要尝试为此使用正则表达式。很有可能你会想出一个脆弱/脆弱的解决方案,它会随着HTML的变化而崩溃,或者很难管理和维护。您可以使用Nokogiri快速解析HTML并提取文本:require'nokogiri'h

  2. ruby-on-rails - 如果为空或不验证数值,则使属性默认为 0 - 2

    我希望我的UserPrice模型的属性在它们为空或不验证数值时默认为0。这些属性是tax_rate、shipping_cost和price。classCreateUserPrices8,:scale=>2t.decimal:tax_rate,:precision=>8,:scale=>2t.decimal:shipping_cost,:precision=>8,:scale=>2endendend起初,我将所有3列的:default=>0放在表格中,但我不想要这样,因为它已经填充了字段,我想使用占位符。这是我的UserPrice模型:classUserPrice回答before_val

  3. ruby-on-rails - 在混合/模块中覆盖模型的属性访问器 - 2

    我有一个包含模块的模型。我想在模块中覆盖模型的访问器方法。例如:classBlah这显然行不通。有什么想法可以实现吗? 最佳答案 您的代码看起来是正确的。我们正在毫无困难地使用这个确切的模式。如果我没记错的话,Rails使用#method_missing作为属性setter,因此您的模块将优先,阻止ActiveRecord的setter。如果您正在使用ActiveSupport::Concern(参见thisblogpost),那么您的实例方法需要进入一个特殊的模块:classBlah

  4. ruby - 多个属性的 update_column 方法 - 2

    我有一个具有一些属性的模型:attr1、attr2和attr3。我需要在不执行回调和验证的情况下更新此属性。我找到了update_column方法,但我想同时更新三个属性。我需要这样的东西:update_columns({attr1:val1,attr2:val2,attr3:val3})代替update_column(attr1,val1)update_column(attr2,val2)update_column(attr3,val3) 最佳答案 您可以使用update_columns(attr1:val1,attr2:val2

  5. ruby - Nokogiri 剥离所有属性 - 2

    我有这个html标记:我想得到这个:我如何使用Nokogiri做到这一点? 最佳答案 require'nokogiri'doc=Nokogiri::HTML('')您可以通过xpath删除所有属性:doc.xpath('//@*').remove或者,如果您需要做一些更复杂的事情,有时使用以下方法遍历所有元素会更容易:doc.traversedo|node|node.keys.eachdo|attribute|node.deleteattributeendend 关于ruby-Nokog

  6. ruby-on-rails - Rails 模型——非持久类成员或属性? - 2

    对于Rails模型,是否可以/建议让一个类的成员不持久保存到数据库中?我想将用户最后选择的类型存储在session变量中。由于我无法从我的模型中设置session变量,我想将值存储在一个“虚拟”类成员中,该成员只是将值传递回Controller。你能有这样的类(class)成员吗? 最佳答案 将非持久属性添加到Rails模型就像任何其他Ruby类一样:classUser扩展解释:在Ruby中,所有实例变量都是私有(private)的,不需要在赋值前定义。attr_accessor创建一个setter和getter方法:classUs

  7. 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返回它复制的字节数,但是当我还没有下

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

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

  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 - Chef Ruby 遍历 .erb 模板文件中的属性 - 2

    所以这可能有点令人困惑,但请耐心等待。简而言之,我想遍历具有特定键值的所有属性,然后如果值不为空,则将它们插入到模板中。这是我的代码:属性:#===DefaultfileConfigurations#default['elasticsearch']['default']['ES_USER']=''default['elasticsearch']['default']['ES_GROUP']=''default['elasticsearch']['default']['ES_HEAP_SIZE']=''default['elasticsearch']['default']['MAX_OP

随机推荐