我有关于打印数组的问题。 我是一名java用户,我是objective-c的新手。
在java代码中,我向你展示我想要的东西
for(myClass a: myVariable){
System.out.println(a.toString);
}
所以我如何在objective-c中这样做,我写的是这样的:
- (void) updateTextField:(NSMutableArray *)array{
for (Storage *obj in array) // Storage class holds a name and a price.
[check setText:@"%@",[obj description]]; // i did override the description method to print out the name and price. and "Check" is my textField;
}
它不起作用。 [检查setText:@“%@”,obj description];得到错误“如果我拿出描述,方法调用的参数太多了”;
这是我的Storage.m #import“Storage.h”
@implementation Storage
@synthesize name;
@synthesize price;
- (NSString *)description {
return [NSString stringWithFormat: @"%@ %@", name, price];
}
@end
答案 0 :(得分:1)
您所做的正确语法是[check setText:[NSString stringWithFormat: @"%@", [obj description]]];
。但是你可以像Java的sysout一样使用NSLog
:
for(Storage *obj in array)
NSLog(@"%@", obj); //the description will be called implicitly, like toString()
答案 1 :(得分:1)
根据你在Ryan帖子上发表的评论错误,你可以试试这个:
- (void) updateTextField:(NSMutableArray *)array{
for (Storage *obj in array)
[check setText:[NSString stringWithString:obj.description]];
}
答案 2 :(得分:1)
-setText:
是采用格式列表还是只采用NSString
?
即尝试:
- (void) updateTextField:(NSMutableArray *)array{
for (Storage *obj in array)
[check setText:[obj description]];
}