0

我有一个关于打印数组的问题。我是一个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 描述]; 得到错误“如果我取出描述,方法调用的参数太多;”

这是我的 Storage.m #import "Storage.h"

@implementation Storage


@synthesize name;
@synthesize price;

- (NSString *)description {
    return [NSString stringWithFormat: @"%@        %@", name, price];
}

@end
4

3 回答 3

1

您所做的正确语法是[check setText:[NSString stringWithFormat: @"%@", [obj description]]];. 但是您可以使用NSLog与 Java 的 sysout 类似的方式:

for(Storage *obj in array)
    NSLog(@"%@", obj); //the description will be called implicitly, like toString()
于 2013-01-29T21:05:53.180 回答
1

根据您对 Ryan 帖子的评论错误,您可以尝试以下操作:

- (void) updateTextField:(NSMutableArray *)array{
    for (Storage *obj in array)
        [check setText:[NSString stringWithString:obj.description]];
}
于 2013-01-29T21:06:25.493 回答
1

-setText:采用格式列表还是仅NSString采用?

也就是说,尝试:

- (void) updateTextField:(NSMutableArray *)array{
    for (Storage *obj in array)  
        [check setText:[obj description]];
}
于 2013-01-29T21:07:10.553 回答