【问题标题】:Expression result unused for UITabBarItem未用于 UITabBarItem 的表达式结果
【发布时间】:2015-02-05 15:05:14
【问题描述】:

我收到警告“未使用表达式结果”。

我不知道为什么会这样。它工作正常。显示正确的标题和图像,为什么会出现警告?我该如何解决这些警告?

谢谢大家的帮助!

----------------------------------- ------ 编辑 1

当我这样写时,我没有收到任何警告。

   tabBarItem1 = [tabBarItem1 initWithTitle:@"Matcher Idag" image:[UIImage imageNamed:@"games-2.png"] selectedImage:[UIImage imageNamed:@"games-2.png"]];

但是当我转到 Product -> Analyze 然后它说:“存储到 tabBarItem1 的值从未使用过

【问题讨论】:

  • 可能是因为selectedImage和普通图片一样?
  • 顺便说一句,不要发布代码图片。将代码复制/粘贴到您的帖子中并使用代码格式。这样它就可读了,如果人们想提出建议,可以复制/粘贴代码。
  • 真的,感谢您抽出宝贵时间向我解释。非常有帮助@DuncanC 你似乎知道你的东西。如果您有时间过来看看我发的这篇文章,如果您有任何想法,那将非常感谢您stackoverflow.com/questions/27347937/…

标签: ios objective-c xcode6 uitabbar uitabbaritem


【解决方案1】:

那个代码非常非常错误。

初始化方法返回一个对象。您应该使用它,因为有时 init 方法返回的对象与您开始使用的对象不同。

你几乎总是成对使用 alloc 和 init,例如:

tabBarItem1 = [[tabBarItem alloc] initWithTitle: @"title" 
  image: myImage
  selectedImage: anotherImage];

如果您不是经验丰富的 Objective-C 开发人员并且您分别调用 alloc 和 init,那么您就犯了一个错误。我可以用一只手的手指数数我在上面显示的 alloc/init 模式中没有使用 init 的次数

您发布的代码没有多大意义。您不应该向已经是标签栏一部分的对象发送初始化消息。那是不行的。这些对象已经被初始化,你应该只在它的生命周期内向一个对象发送一个初始化消息。你正在做的事情会导致问题。大问题。

您应该使用 title 和 image 属性:

tableBarItem1.title = @"new title";
tableBarItem1.image  = myImage;
tableBarItem1.selectedImage  = mySelectedImage;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-03
    • 2020-12-18
    • 1970-01-01
    • 2020-06-22
    • 2014-12-06
    • 2012-09-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多