【问题标题】:NSString with Instance Variable带有实例变量的 NSString
【发布时间】:2010-10-10 03:22:51
【问题描述】:

所以,我想像这样将一个实例变量放入一个 NSString 中:

NSString *theAnswer = (@"答案是 %@\n", self.answer);

我不确定我是否正确。我认为 NSString 会像 NSLog 一样工作,但显然不是。

theAnswer 仅作为没有“答案是”的实例变量返回

谁能告诉我为什么以及如何解决这个问题?

谢谢。

【问题讨论】:

    标签: objective-c nsstring


    【解决方案1】:
    NSString *theAnswer = [NSString stringWithFormat:@"The answer is %@", self.answer];
    

    【讨论】:

      【解决方案2】:

      除了 dj2 答案之外,我还想指出 NSLog 是一种方法而不是对象。对象不是以("param1", param2) 的形式初始化的,对于 NSString 的情况,你做 dj2 做的事情:

      NSString *theAnswer = [[NSString alloc] initWithFormat:@"The answer is %@", self.answer];
      

      你必须将 theAnswer 声明为 NSString 指针,因为所有的 Objective-C 对象都是指针,然后再说一遍它将在哪个类下分配(在本例中为 NSString)然后你说你将如何初始化它,在这种情况下,您使用 initWithFormat: 来初始化它。

      【讨论】:

      • 感谢您的回答。我确实想问如果我初始化 NSString 有什么不同?
      • @theAmeratureProgrammer:实际上,我在此之后问了一个问题,以这种方式初始化它不会自动释放它,但另一种方式会这样做。所以,随便挑吧。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多