当初学者的书在第三章中有关于源的错误时,这绝不是一个好兆头,但在这里我是从Apress开始iOS 6开发。我们正在开发一个简单的项目,它提供两个按钮,并根据按下的按钮的名称更改标签。
本书的初始要求是使用 statusLabel.text = plainText;
,但失败了。
之前已在另一个thread上进行过讨论,因此我将其修改为 self.statusLabel.text = plainText;
,但这并未解决我的问题。
这是我的代码:
#import "BIDViewController.h"
@implementation BIDViewController
- (IBAction)buttonPressed:(UIButton *)sender {
NSString *title = [sender titleForState:UIControlStateNormal];
NSString *plainText = [NSString stringWithFormat:@" %@button pressed.", title];
self.statusLabel.text = plainText;
}
@end
引发的错误如下:对象'UIView *'上找不到属性'text'
我猜这是愚蠢的,但我很感激你能给我的任何帮助。
答案 0 :(得分:6)
错误很明确,
在对象'UIView *'
上找不到属性'text'
意思是你可能将statusLabel声明为UIView。类似的东西:
@property (weak, nonatomic) IBOutlet UIView *statusLabel;
什么时候应该宣布为UILabel:
@property (weak, nonatomic) IBOutlet UILabel *statusLabel;
重要的是要记住,即使UILabel
继承自UIView
,但这并不意味着它们共享所有相同的属性/方法。在这种情况下,UILabel
的{{1}}子类声明了一个属性UIView
,该属性在其超类(@property(nonatomic, copy) NSString *text;
)中不存在。