在objective-c中打印出一个数组

时间:2013-01-29 20:51:47

标签: java ios objective-c

我有关于打印数组的问题。 我是一名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

3 个答案:

答案 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]];
}