错误告诉我尝试制作 NSDictionary 时我的 textview 为 nil
Error tells me that my textview is nil when trying to make NSDictionary
我要在我的应用程序中设置一些限制条件。当我尝试创建一个 NSDictionary
时,我得到一个错误,告诉我我的 UITextView
是零。如您所见,我已经为 UITextView
设置了一些首选项,所以我认为它不是零。但是,如果它是零,我如何让它不为零?
我也尝试过 NSDictionaryOfVariableBindings
,但没有成功。
谢谢。
UIView *infoView = [[UIView alloc] viewWithTag:1];
infoView.backgroundColor = [UIColor blackColor];
infoView.translatesAutoresizingMaskIntoConstraints = NO;
[displayView addSubview:infoView];
NSDictionary *views = @{@"infoView" : infoView};
[displayView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[infoView]|"
options:0
metrics:nil
views:views]];
[displayView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[infoView]|"
options:0
metrics:nil
views:views]];
您犯的错误是 viewWithTag: 没有实例化新的 UIView,它只是在现有 UIView 的层次结构中搜索另一个将其作为其标记值的 UIView。更多文档:https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIView_Class/index.html#//apple_ref/occ/instm/UIView/viewWithTag:
您需要做的是先实例化您的 UIView,然后设置它的标签:
UIView *infoView = [[UIView alloc] init];
infoView.tag = 1;
还有一点,虽然令人惊讶,但在 objective-c 中为 nil 设置属性(和调用方法或发送消息)是完全有效的,您不能相信它测试该对象不是零。更多讨论在这里:Sending a message to nil?
我要在我的应用程序中设置一些限制条件。当我尝试创建一个 NSDictionary
时,我得到一个错误,告诉我我的 UITextView
是零。如您所见,我已经为 UITextView
设置了一些首选项,所以我认为它不是零。但是,如果它是零,我如何让它不为零?
我也尝试过 NSDictionaryOfVariableBindings
,但没有成功。
谢谢。
UIView *infoView = [[UIView alloc] viewWithTag:1];
infoView.backgroundColor = [UIColor blackColor];
infoView.translatesAutoresizingMaskIntoConstraints = NO;
[displayView addSubview:infoView];
NSDictionary *views = @{@"infoView" : infoView};
[displayView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[infoView]|"
options:0
metrics:nil
views:views]];
[displayView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[infoView]|"
options:0
metrics:nil
views:views]];
您犯的错误是 viewWithTag: 没有实例化新的 UIView,它只是在现有 UIView 的层次结构中搜索另一个将其作为其标记值的 UIView。更多文档:https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIView_Class/index.html#//apple_ref/occ/instm/UIView/viewWithTag:
您需要做的是先实例化您的 UIView,然后设置它的标签:
UIView *infoView = [[UIView alloc] init];
infoView.tag = 1;
还有一点,虽然令人惊讶,但在 objective-c 中为 nil 设置属性(和调用方法或发送消息)是完全有效的,您不能相信它测试该对象不是零。更多讨论在这里:Sending a message to nil?