在目标c中使用titleForState和initWithFormat

时间:2012-11-14 09:51:43

标签: iphone objective-c methods label

我只是iPhone编程的初学者。我在教程中看到了这段代码,我不明白这意味着什么。我对titleForStateinitWithFormat等关键字感到困惑。

任何人都可以帮助我理解这种语法的含义和重要性。

-(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];
}

1 个答案:

答案 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}},你的应用程序将崩溃。