Objective C - OSX NSInterger到NSString

时间:2011-02-22 19:14:13

标签: objective-c xcode macos nsstring

嗨,我正在阅读aaron hillegass关于cococa编程的书,我正在做一个他要求我们做的迷你任务。

任务是创建一个打开一个窗口的应用程序,它有一个输入文本字段,一个按钮和一个标签。

当用户输入一些文字并按下按钮时,标签会显示文字和输入文字的长度。

这是我到目前为止所得到的

//retrieve text from textfield
NSString *string = [textFieldInput stringValue];

//retrieve length of text and store in NSInteger called length
NSInteger length = [string length];

//store length in string format
NSString *string_length = [NSString stringWithFormat:@"%d", length];

//join strings
NSString *full_string = [string stringByAppendingString:(@"has ",string_length,@" characters")];

//set label text
[textField setStringValue:full_string];

然而显示实际字符串并显示字符串,而不是string_length。任何建议,我是否以正确的方式解决这个问题?感谢。

3 个答案:

答案 0 :(得分:2)

NSString *fullString = [string stringByAppendingFormat:@"has %@ characters", string_length];

答案 1 :(得分:0)

您对stringByAppendingString:的使用是错误的 如果我理解正确,您正在尝试传递应附加到string的字符串列表,但该方法只接受一个字符串参数。
您可以尝试以下方法:

NSString* fullString = [string stringByAppendingString:[NSString stringWithFormat:@"%@ %@ %@", @"has ", string_length, @" characters"]];

答案 2 :(得分:0)

//retrieve text from textfield
NSString *string = [textFieldInput stringValue];

NSString *fullString = [string stringByAppendingFormat:@" has %d characters", [string length]];

//set label text
[textField setStringValue:fullString];