我试图让我的标签打印出“你的分数是多少”。
我在网上找到的就是如何使用printf进行打印:
int score=2;
printf("You scored %i", score);
但是使用setText方法时这不起作用。我也试过
labelAnswer.setText:("You scored %i", score);
[labelAnswer setText:("You scored %i", score)];
但这些都行不通。我收到一个错误:“请求成员不是结构或联合” 有人可以帮忙吗?
答案 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 开头的方法,则不需要释放它们,因为自动释放池会处理它。