我是Cocoa的新手,并且正在通过Hillegass的书.我在第20章的挑战2中遇到了麻烦.
挑战是添加复选框,如果绘制的字母是斜体,粗体或两者,则切换.
-(IBAction)toggleItalic:(id)sender
{
int state = [italicBox state];
NSLog(@"state %d", state);
if (state = 1) {
italic = YES;
NSLog(@"italic is yes");
}
else {
italic = NO;
NSLog(@"italic is no");
}
}
Run Code Online (Sandbox Code Playgroud)
现在,当检查框这个代码片段将返回肯定的,而当没有选中该复选框.我究竟做错了什么?
谢谢,
贾斯汀.
你的问题在于你的if语句:
if (state = 1) {
Run Code Online (Sandbox Code Playgroud)
您将状态分配给值1:,state = 1而您需要测试的是当前状态是1:state ==1
这是一个相当常见的错误(特别是在允许在if语句中进行赋值的语言中).学会解决这个问题的一个诀窍是进行比较检查:
if (1 == state)
Run Code Online (Sandbox Code Playgroud)
您无法分配1给其他值.因此,如果您错误地使用=而不是==您将获得编译器错误,这是一个简单的修复.
| 归档时间: |
|
| 查看次数: |
1880 次 |
| 最近记录: |