我正在尝试将a UILabel与IBOutlet我班级中的创建链接起来.
我的应用程序崩溃,出现以下错误.这是什么意思?我该如何解决?
***由于未捕获的异常'NSUnknownKeyException'终止应用程序,原因:'[<UIViewController 0x6e36ae0> setValue:forUndefinedKey:]:此类不是密钥XXX的密钥值编码.
我在项目中添加了一个新的nib文件,并尝试加载它.
但是,当我点击应该带我到我创建的视图的工具栏图标时,我得到一条NSInternalInconsistencyException消息:
由于未捕获的异常'NSInternalInconsistencyException'终止应用程序,原因:' - [UIViewController _loadViewFromNibNamed:bundle:]加载了"..."笔尖,但未设置视图插座.
所以我打开了我的nib文件,我看到没有设置引用插件的视图.但是,我尝试单击并将"新引用插座"的圆圈拖动到文件所有者,但它不会让我...我需要做什么才能显示我的视图?
我升级到Xcode 6 beta 4,现在我的应用程序不断崩溃
Interface Builder文件中的未知类X.
它崩溃了,因为据说Xcode找不到我在Storyboard中链接的自定义类,但它显示它们在Xcode界面中正确链接.
我很肯定一切都是正确的.我唯一的另一个选择可能是删除整个故事板文件并从头开始,因为它可能会以某种方式损坏.
编辑:我还想补充一点,我尝试清理,重置模拟器,弄乱构建阶段等.这些都不起作用.
我正在使用ARC专门为iOS 5开发.应该IBOutlets UIView(和子类)是strong或weak?
下列:
@property (nonatomic, weak) IBOutlet UIButton *button;
Run Code Online (Sandbox Code Playgroud)
将摆脱所有这一切:
- (void)viewDidUnload
{
// ...
self.button = nil;
// ...
}
Run Code Online (Sandbox Code Playgroud)
这样做有什么问题吗?模板正在使用strong,当从"Interface Builder"编辑器直接连接到标题时创建的自动生成属性,但为什么?在UIViewController已经有一个strong到其基准view保留其子视图.
cocoa-touch objective-c interface-builder ios automatic-ref-counting
各位开发者,我在Interface Builder(Xcode 5/iOS 7)中遇到AutoLayout问题.这是非常基本和重要的,所以我想每个人都应该知道这是如何正常运作的.如果这是Xcode中的一个错误,那就是一个关键错误!
所以,每当我有一个像这样的视图层次结构时,我遇到了麻烦:
>UIViewController
>> UIView
>>>UIScrollView
>>>>UILabel (or any other comparable UIKit Element)
Run Code Online (Sandbox Code Playgroud)
UIScrollView具有可靠的约束,例如,每侧50 px(没问题).然后我向UILabel添加一个Top Space约束(没问题)(我甚至可以固定标签的高度/宽度,不做任何改变,但由于Label的内在大小,应该是不必要的)
当我向UILabel添加尾随约束时,麻烦就开始了:
例如,尾随空间:Superview等于:25
现在出现了两个警告 - 我不明白为什么:
A)可滚动内容大小歧义(滚动视图具有不明确的可滚动内容高度/宽度)
B)错位视图(预期标签:x = -67实际值:x = 207
我在一个新的项目中做了这个最小的例子,你可以下载并附上截图.如您所见,Interface Builder期望Label位于UIScrollView边界之外(橙色虚线矩形).使用Resolve Issues Tool更新Label的框架会将其移动到那里.
请注意:如果用UIView替换UIScrollView,行为就像预期的那样(Label的框架是正确的,并且根据约束条件).所以似乎UIScrollView存在问题,或者我错过了重要的事情.
当我按照IB的建议运行应用程序而不更新Label的框架时,它定位得很好,正好在它应该是的位置,并且UIScrollView是可滚动的.如果我更新框架,标签不在视线范围内,UIScrollView不会滚动.
帮助我Obi-Wan Kenobi!为什么模棱两可的布局?为什么错位的观点?
你可以在这里下载示例项目,如果你能弄清楚发生了什么就试试:https: //github.com/Wirsing84/AutoLayoutProblem

我在IB中设计了自定义Cell,将其子类化并将我的插座连接到我的自定义类.我在单元格内容中有三个子视图:UIView(cdView)和两个标签(titleLabel和emailLabel).根据每行可用的数据,有时我想在我的单元格中显示UIView和两个标签,有时只有两个标签.我想要做的是设置约束,如果我将UIView属性设置为隐藏或我将从superview中删除它,两个标签将移动到左侧.我尝试将UIView前导约束设置为10px的Superview(单元格内容)和UILabels将10 px的约束引导到下一个视图(UIView).稍后在我的代码中
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(IndexPath *)indexPath {
...
Record *record = [self.records objectAtIndex:indexPath.row];
if ([record.imageURL is equalToString:@""]) {
cell.cdView.hidden = YES;
}
Run Code Online (Sandbox Code Playgroud)
我隐藏了我的cell.cdView,我希望标签向左移动,但是它们在Cell中保持相同的位置.我试图从superview中删除cell.cdView,但它也没有用.我附上图片来澄清我的意思.

我知道如何以编程方式执行此操作,而我不是在寻找解决方案.我想要的是在IB中设置约束,并且如果删除或隐藏其他视图,我希望我的子视图将动态移动.是否可以在具有自动布局的IB中执行此操作?
.....
Run Code Online (Sandbox Code Playgroud) 我在检查员看到我可以改变背景颜色,但我也想改变边框颜色和厚度,这可能吗?
谢谢
即使Interface Builder知道a MyClass,我在启动应用程序时也会收到错误.
当它MyClass是库的一部分时会发生这种情况,如果我直接在应用程序目标中编译该类,则不会发生这种情况.
我正在尝试做一些精心设计的事情,但这应该是可行的.所以这里对你所有的专家都是一个挑战(这个论坛是你们很多人的一部分:)).
我正在创建一个问卷调查"组件",我想在NavigationContoller(我的QuestionManagerViewController)上加载."组件"是"空" UIViewController,可以根据需要回答的问题加载不同的视图.
我这样做的方式是:
UIView子类,定义一些IBOutlets.Question1View.xib (这里可能是我的问题所在).我同时设置UIViewController和UIView为类Question1View的.我重写initWithNib我QuestionManagerViewController的看起来像这样:
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
if (self = [super initWithNibName:@"Question1View" bundle:nibBundleOrNil]) {
// Custom initialization
}
return self;
}
Run Code Online (Sandbox Code Playgroud)当我运行代码时,我收到此错误:
2009-05-14 15:05:37.152 iMobiDines [17148:20b]***因未捕获的异常终止应用程序'
NSInternalInconsistencyException',原因:'-[UIViewController _loadViewFromNibNamed:bundle:]加载了'Question1View"笔尖,但未设置视图插座."
我确信有一种方法可以使用nib文件加载视图,而无需创建viewController类.
ios ×9
cocoa-touch ×7
iphone ×3
objective-c ×3
xcode ×3
autolayout ×2
cocoa ×2
swift ×2
iboutlet ×1
macos ×1
uiscrollview ×1
uistoryboard ×1
xcode6 ×1
xib ×1