Objective-c新手 - 需要帮助字符串变量

时间:2010-12-23 01:32:33

标签: iphone objective-c

我试图让我的标签打印出“你的分数是多少”。

我在网上找到的就是如何使用printf进行打印:

int score=2;
printf("You scored %i", score);

但是使用setText方法时这不起作用。我也试过

labelAnswer.setText:("You scored %i", score);
[labelAnswer setText:("You scored %i", score)];

但这些都行不通。我收到一个错误:“请求成员不是结构或联合” 有人可以帮忙吗?

2 个答案:

答案 0 :(得分:5)

[labelAnswer setText:[NSString stringWithFormat:@"You scored %i", score]];

会做到的。 printf是一个C标准库函数,与普通的Cocoa字符串(NSString对象)不能很好地互操作。你应该在这里避开它。 NSString“文字”应@"begin with an at sign"

你应该从iPhone / Obj-C获得一本入门书籍并从那里开始。看起来像几个辅导课程可以帮助你滚动。

答案 1 :(得分:0)

首先,请记住在字符串之前添加 @ 。这是告诉编译器这是一个NSString的方式,它是一个预定义的对象,具有许多优秀的功能,并且非常易于使用。

其次,尽管直接将指针指向 @“I_Just_Wrote_A_String”这样的东西是可以接受的,但总是建议使用NSString的类方法(例如 stringWithFormat )或其实例方法(例如 initWithFormat )。

是的,这些方法彼此略有不同。从 initWith 开始的方法会将对象的保留计数增加到1,并且您在完成后负责释放它们。但是如果您使用以 stringWith 开头的方法,则不需要释放它们,因为自动释放池会处理它。