UIView和UILabel在他们的网站上创建了在viewDidLoad中返回“nil”

时间:2015-01-05 22:14:45

标签: ios xcode uiview uilabel null

我已经设置了一个带有UIView(contentViewForScroll)的UIScrollView来保存所有内容,如http://spin.atomicobject.com/2014/03/05/uiscrollview-autolayout-ios/所示,IB没有显示有关错放,预期宽度等的任何警告...... / p>

但是当我尝试以编程方式添加约束以在viewDidLoad上设置“contentViewForScroll”的宽度时,我得到了一个奇怪的错误描述,在google之后我发现它意味着你的对象的属性返回“nil”。这正是发生的事情!!然后我意识到当我修改它的属性时,我有一个UILabel没有改变它的值。其他UILabels和UIButtons按预期更改了文本和标题属性。

我尝试重命名两个控件(这就是为什么它有这么长的名字),更改.h文件或.m文件中的定义。什么都行不通。

¿任何想法?

这是我在.m文件中的代码:

@interface MarketsViewController ()
    @property (strong, nonatomic) IBOutlet UILabel *labelMarketName;  // This is returning nil
    @property (strong, nonatomic) IBOutlet UIImageView *imageVenueCover;
    @property (strong, nonatomic) IBOutlet UILabel *labelMarketAddress;
    @property (strong, nonatomic) IBOutlet UILabel *labelMarketCity;
    @property (strong, nonatomic) IBOutlet UIView *contentViewForScroll; // This is returning nil
@end

@implementation MarketsViewController
    - (void)viewDidLoad {
        [super viewDidLoad];

        NSLog(@"UIView: %@", self.contentViewForScroll);   // this is returning "UIView: (null)"
        NSLog(@"UILabel: %@", self.labelMarketName);   // this is returning "UILabel: (null)"
    }
@end

由于

1 个答案:

答案 0 :(得分:0)

您是否将故事板中的对象链接到了商店?为此,您可以打开助理编辑器并按住从故事板中的对象拖动到上面代码中的插座。或者,您可以从对象拖动到文件所有者,然后从那里选择插座。

有一点需要注意的是,通常你想让你的IBOutlets变弱而不是像上面那样强大。