当一本初学者书籍在第三章中出现与源代码相关的错误时,这绝不是一个好兆头,但我在这里使用 Apress 的 Beginning iOS 6 Development。我们正在开发一个简单的项目,它提供两个按钮并根据按下的按钮的名称更改标签。
这本书最初的要求是使用 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 *”上找不到属性“文本”
我猜这是愚蠢的事情,但如果您能给我任何帮助,我将不胜感激。
最佳答案
错误的拼写非常好,
Property 'text' not found on object 'UIView *'
这意味着您可能将 statusLabel 声明为 UIView。像这样的东西:
@property (weak, nonatomic) IBOutlet UIView *statusLabel;
当它应该被声明为 UILabel 时:
@property (weak, nonatomic) IBOutlet UILabel *statusLabel;
重要的是要记住,即使 UILabel
确实继承自 UIView
,但这并不意味着它们共享所有相同的属性/方法。在这种情况下,UIView
的 UILabel
子类声明了一个属性 @property(nonatomic, copy) NSString *text;
它不存在于它的父类(super class)(UIView
)。
关于ios - 开始 iOS 6 开发 - self.statusLabel.text 构建失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16454461/