我只是iPhone编程的初学者。我在教程中看到了这段代码,我不明白这意味着什么。我对titleForState
和initWithFormat
等关键字感到困惑。
任何人都可以帮助我理解这种语法的含义和重要性。
-(IBAction)buttonPressed: (id)sender {
NSString *title = [sender **titleForState**:UIControlStateNormal];
NSString *newText = [[NSString alloc] **initWithFormat**:
@"%@ button pressed.", title];
statusText.text = newText;//statustext is a label
[newText release];
}
答案 0 :(得分:1)
initwithFormat
允许您通过向其添加变量值来修改字符串,您可以根据需要添加任意数量的变量,但必须为正确的基元类型添加正确的符号。以下是一些例子
NSString *thisIsAString = @"String";
float thisIsAFloat = 13.9f;
NSString *strFormat = [[NSString alloc] initWithFormat:@"This is a %@, this is a %f float", thisIsAString, thisIsAFloat];
NSLog(@"%@", strFormat);
这将产生输出This is a String, this is a 13.9f float
,注意float
并且NSString
值已替换符号。
titleForState
获取具有该方法的对象的标题。这将返回标题,让我们说UIControlStateNormal
标题为“按”的UIButton,以便将值“Press”输入NSString
标题。尽管不是发件人中的所有内容都没有方法titleForState
,但是这会显示原因是因为发件人是id
的原始类型,如果发送的内容没有titleForState
,这将导致错误{{ 1}},你的应用程序将崩溃。