Objective c 目标C-OSX NSInterger到NSString
嗨,我正在读aaron hillegass写的一本关于cococa编程的书,我正在做他让我们做的一个小任务 任务是创建一个打开一个窗口、一个输入文本字段、一个按钮和一个标签的应用程序 当用户输入一些文本并按下按钮时,标签显示文本和输入文本的长度 这是我到目前为止得到的Objective c 目标C-OSX NSInterger到NSString,objective-c,xcode,macos,nsstring,Objective C,Xcode,Macos,Nsstring,嗨,我正在读aaron hillegass写的一本关于cococa编程的书,我正在做他让我们做的一个小任务 任务是创建一个打开一个窗口、一个输入文本字段、一个按钮和一个标签的应用程序 当用户输入一些文本并按下按钮时,标签显示文本和输入文本的长度 这是我到目前为止得到的 //retrieve text from textfield NSString *string = [textFieldInput stringValue]; //retrieve length of text and stor
//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];
但是,将显示实际字符串和字符串,而不是字符串的长度。有什么建议吗?我的做法对吗?谢谢。您使用的
stringByAppendingString:
是错误的。如果我理解正确,您正在尝试传递一个字符串列表,该列表应附加到
string
,但该方法只接受一个字符串参数。您可以尝试以下操作:
NSString* fullString = [string stringByAppendingString:[NSString stringWithFormat:@"%@ %@ %@", @"has ", string_length, @" characters"]];
哇,为什么不[stringByAppendingFormat:]?!你是对的。马克·亚当斯已经发布了一个使用该方法的解决方案。
NSString *fullString = [string stringByAppendingFormat:@"has %@ characters", string_length];
//retrieve text from textfield
NSString *string = [textFieldInput stringValue];
NSString *fullString = [string stringByAppendingFormat:@" has %d characters", [string length]];
//set label text
[textField setStringValue:fullString];