我决定使用连接到不同构建配置的不同方案为同一应用程序目标管理不同的PREPROCESSOR定义.意思是我复制了Debug构建配置并给它一个新名称(例如Staging).后缀定义了为每个新构建配置定义的预处理器宏.设置一个新的共享方案,"运行"步骤使用我刚创建的新的"暂存"(调试重复)构建配置.该应用程序运行罚款,但我注意到调试器值都是零.将方案设置为从"Debug"构建配置运行时,一切都很好.新的构建配置是Debug的完整副本,并且定义了一个额外的预处理器宏.将Debug构建配置重命名为其他任何内容时也会发生这种情况.
有没有办法让调试器使用不同的(启用调试的)构建配置?
我正在尝试调试在iOS 5.1下运行的问题,当我在调试器中停止获取错误并尝试使用调试器打印内容时,我收到消息:
错误:警告:在声称捕获Objective-C对象指针的上下文中停止,但"self"不可用; 假装我们处于一般背景下
劳驾?有人知道我在这里做了什么吗?
代码太复杂了,任何人都不希望看到它 - 我大多希望有人可以告诉我调试器消息的含义.
这曾经只是间歇性地失败但现在大多数都失败了.操作一般(或可能总是)在我第一次在iOS 5.1中尝试时,偶尔在第一次之后,并且显然总是在iOS 6中工作.
如果它有助于了解一般上下文...我正在尝试将一个刚编写的对象添加到ALAssetsGroup,因此这是在非UI线程上的完成块中.对于完成块,我有一个看似合理的堆栈回溯.失败是因为存储的ALAssetsGroup不再具有有意义的值 - 或者说它的NSLog知道它是ALAssetsGroup对象.这个值在一个地方分配(并记录,所以我跟踪它),我可以看到键值观察的初始分配,我不认为它是以KVO-sorta方式改变的.
我有一个视图控制器布局在故事板中启用自动布局,我正在寻找一种方法来更改约束,以允许我的视图旋转到横向和重新排列屏幕上的按钮.当我尝试下面的代码时,我得到了大约二十几个"无法满足约束,打破约束......"消息,我无法真正解码.
有没有办法用编程方式指定的约束动态替换故事板中的约束?我想完全覆盖我在故事板中定义的按钮的布局.
-(void)updateViewConstraints
{
[super updateViewConstraints];
self.loginButton.translatesAutoresizingMaskIntoConstraints = NO;
self.getStartedButton.translatesAutoresizingMaskIntoConstraints = NO;
self.takeTourButton.translatesAutoresizingMaskIntoConstraints = NO;
[self.loginButton removeConstraints:self.loginButton.constraints];
[self.getStartedButton removeConstraints:self.getStartedButton.constraints];
[self.takeTourButton removeConstraints:self.takeTourButton.constraints];
one = self.loginButton;
two = self.getStartedButton;
three = self.takeTourButton;
NSDictionary *metrics = @{@"height":@50.0,@"width":@100.0,@"leftSpacing":@110.0};
NSDictionary *views = NSDictionaryOfVariableBindings(one,two,three);
[self.view removeConstraints:activeTestLabelConstraints];
[activeTestLabelConstraints removeAllObjects];
if(isRotatingToLandscape)
{
[self registerConstraintsWithVisualFormat:@"|-[one(two)]-[two(three)]-[three]-|" options:NSLayoutFormatAlignAllTop | NSLayoutFormatAlignAllBottom metrics:metrics views:views];
[self registerConstraintsWithVisualFormat:@"V:[one(height)]-|" options:0 metrics:metrics views:views];
}else
{
[self registerConstraintsWithVisualFormat:@"|-leftSpacing-[one(width)]" options:0 metrics:metrics views:views];
[self registerConstraintsWithVisualFormat:@"[two(width)]" options:0 metrics:metrics views:views];
[self registerConstraintsWithVisualFormat:@"[three(width)]" options:0 metrics:metrics views:views];
[self registerConstraintsWithVisualFormat:@"V:[one(height)]-[two(75)]-[three(100)]-|" options:NSLayoutFormatAlignAllCenterX metrics:metrics views:views];
} …
Run Code Online (Sandbox Code Playgroud)