【问题标题】:Objective C - OSX NSInterger to NSStringObjective C - OSX NSInterger 到 NSString
【发布时间】:2011-02-22 19:14:13
【问题描述】:

您好,我正在阅读 aaron hillegas 的一本关于可可编程的书,我正在做他要求我们做的一项小任务。

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

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

这是我目前所得到的

//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。任何建议,我是否以正确的方式解决这个问题?谢谢。

【问题讨论】:

    标签: objective-c xcode macos nsstring


    【解决方案1】:
    NSString *fullString = [string stringByAppendingFormat:@"has %@ characters", string_length];
    

    【讨论】:

      【解决方案2】:
      //retrieve text from textfield
      NSString *string = [textFieldInput stringValue];
      
      NSString *fullString = [string stringByAppendingFormat:@" has %d characters", [string length]];
      
      //set label text
      [textField setStringValue:fullString];
      

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

        • 哇,为什么不 [stringByAppendingFormat:]?!
        • 你是对的。 Mark Adams 已经发布了使用该方法的解决方案。
        猜你喜欢
        • 1970-01-01
        • 2015-06-20
        • 1970-01-01
        • 1970-01-01
        • 2011-03-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-26
        相关资源
        最近更新 更多