2014-12-08 48 views
0

我得到警告“表达式结果未使用”。表达式结果未用于UITabBarItem

enter image description here

我不知道这是为什么显示。它工作正常。显示正确的标题和图像,为什么警告?我能做些什么来解决这些警告?

谢谢大家的帮助!

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

当我这样写我没有任何警告。

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

但是当我去到产品 - >分析则说:“存储到tabBarItem1值永远不会使用

+0

也许因为selectedImage相同的常规形象? – RegularExpression 2014-12-08 01:14:07

+1

顺便说一句,不要张贴图片的代码。将代码复制/粘贴到您的帖子中并使用代码格式。这样它就可以读取,如果他们想提出建议,人们可以复制/粘贴代码。 – 2014-12-08 01:20:48

+0

诚然,谢谢你花时间向我解释事情。非常有帮助@DuncanC你好像你知道你的东西。如果你有任何机会有一段时间了,看看这篇文章,我作出了,如果你有任何想法,它会是非常友善的http://stackoverflow.com/questions/27347937/changing-position-of-a-uilabel- for-a-custom-uitableviewcell – 2014-12-08 01:23:35

回答

2

该代码是非常,非常错误的

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

你几乎总是使用alloc和一对初始化在一起,如:

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

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

您发布的代码没有多大意义。您不应该将init消息发送给已经是标签栏一部分的对象。这是一个禁忌。这些对象已经被初始化,并且你只能发送一个init消息给它的生命周期中的一个对象。你在做什么会导致问题。大问题。

相反,你应该使用的标题和图像属性:

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

谢谢!很有帮助 – 2014-12-08 01:23:55