使用词典创建多个对象

时间:2013-05-04 04:19:59

标签: ios objective-c nsdictionary nsobject

我有以下实现和方法。当调用setPaymentInfo方法并且字典是参数时,该方法然后创建PaypalPaymentInfo的新实例,然后设置值。这一切都很有效。

我现在想要做的是能够将多个词典传递给方法并创建多个PaypalPaymentInfo实例并填充值。所以基本上是一个字典的“数组”,如果你愿意的话。

@implementation PaypalPaymentInfo

@synthesize paymentCurrency, paymentAmount, itemDesc, recipient, merchantName;

- (void) dealloc
{
    self.paymentCurrency = nil;
    self.paymentAmount = nil;
    self.itemDesc = nil;
    self.recipient = nil;
    self.merchantName = nil;

    [super dealloc];
}

@end

- (void) setPaymentInfo:(NSMutableArray*)arguments withDict:(NSMutableDictionary*)options
{
    self.paymentInfo = nil;
    self.paymentInfo = [[PaypalPaymentInfo alloc] init];

    [self.paymentInfo setValuesForKeysWithDictionary:options];
}

谷歌的搜索并不是很有帮助,这种情况很难用到足够的单词来搜索......

由于

1 个答案:

答案 0 :(得分:2)

你需要创建一个可变数组来保存PaypalPaymetntInfo对象,我在我的例子中称之为paymentInfoArray。然后你只需要传递一个数组(字典)而不是字典,并循环遍历数组以获取字典。

- (void) setPaymentInfo:(NSMutableArray*)arguments withArray:(NSArray*)options
{
    for (NSMutableDictionary *dict in options){
       PaypalPaymentInfo *paymentInfo = [[PaypalPaymentInfo alloc] init];
       [paymentInfo setValuesForKeysWithDictionary:dict];
       self.paymentInfoArray addObject:paymentInfo];
    }
}