【问题标题】:Pass a variable to an NSMutableArray将变量传递给 NSMutableArray
【发布时间】:2014-04-12 10:38:31
【问题描述】:

我有一个必须传递给 NSMutableArray (productRes) 的变量 (ID)。 但它不起作用:productRes 仍然为空。 有想法吗?

这是productRes:

@property (strong, nonatomic) NSMutableArray *productRes;
@synthesize productRes;

ID相关代码:

if ([purchase_id isEqual: IAP_500_BYTES_PACK]){
        ID = 4;
}
else if ([purchase_id isEqual: IAP_1000_BYTES_PACK])
{
        ID = 0;
}
else if ([purchase_id isEqual: IAP_3000_BYTES_PACK]){
        ID = 2;
}
else if ([purchase_id isEqual: IAP_7500_BYTES_PACK]){
        ID = 5;
}

else if ([purchase_id isEqual:  IAP_20000_BYTES_PACK]){
        ID = 1;
}

else if ([purchase_id isEqual:  IAP_50000_BYTES_PACK]){
        ID = 3;
}
else if ([purchase_id isEqual:  IAP_ADD_BACKGROUNDS]){
    ID = 6;
}
else if ([purchase_id isEqual:  IAP_FULL_VERSION]){
        ID = 7;
    }

SKProduct *productSK = [self.productRes objectAtIndex:ID];

非常感谢您的帮助!

【问题讨论】:

  • 你分配/初始化数组了吗?
  • 你从未创建过数组。
  • 顺便说一句,你设置ID的方式不是特别好。您应该创建一个 NSDictionary,其中您的 purchase_id 作为键,ID(编码为 NSNumber)作为值。这更容易维护。

标签: objective-c nsmutablearray


【解决方案1】:

[self.productRes objectAtIndex:ID];

方法objectAtIndex 要求数组返回给定索引处的值。如果数组为空,逻辑上该方法不会返回任何内容。

如果数组为空,它实际上应该崩溃,所以我的猜测是数组是nil

通过addObject:方法将对象添加到数组中,例如:

[self.productRes addObject:[NSNumber numberWithInt:ID]];

【讨论】:

  • 当然,如果 productRes 为 nil,addObject 会静默失败。
  • 不幸的是,它仍然不能完全工作。现在 productRes 获取 ID,但 productSK 为空。现在我的代码是:[self.productRes addObject:[NSNumber numberWithInt:ID]]; SKProduct *productSK = [self.productRes objectAtIndex:ID];
  • @Sulthan 是的,我是个菜鸟 ;) 无论如何感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-11-01
  • 1970-01-01
  • 2014-07-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多