【问题标题】:Inside iOS method a dictionary's values not being set在iOS方法内部没有设置字典的值
【发布时间】:2012-10-27 06:16:35
【问题描述】:

我得到以下代码:

尝试调试它一段时间。想不通。

    [self.vManager vendorsNearLocation:userLocation block:^(NSArray *vendors, NSError   *error)
     {
         self.vManager.vendors_array = [NSArray arrayWithArray:vendors];
         NSLog(@"Vendors array was %d long", [self.vManager.vendors_array count]);
         if(vendors && [vendors count])
         {
             for (id v in vendors)
             {
                 Vendor *aVendor = [[Vendor alloc] initWithAttributes:v];
                 [self.mapView addAnnotation:aVendor];
                 [self.vManager.vendor_dict setObject:aVendor
                                              forKey:[aVendor name]];

我希望在该循环中设置字典的值。但是字典总是空的。没有错误或警告,没有设置任何内容但是数组有值,我的地图显示了所有供应商。顺便说一句,vManager 是一个单例,字典正在调用者的 viewDidLoad 方法中初始化

我做的事情有什么明显错误的吗?

【问题讨论】:

  • 您是否正确初始化了字典?
  • 是的,它在像这样的视图 didload 方法中完成-----self.vManager.vendor_dict = [[NSMutableDictionary alloc] initWithCapacity:1000];
  • 在执行上述方法之前检查初始化是否被调用。如果没问题,那么检查 [aVendor name] 的值是否是正确的字符串。

标签: iphone objective-c ios dictionary


【解决方案1】:

我认为您需要在 SINGLETON 类本身中初始化字典。我昨天尝试了同样的事情,它奏效了。

只需创建一个函数并在那里初始化字典并在使用该字典之前调用该函数。

它一定会起作用的。

【讨论】:

    猜你喜欢
    • 2019-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-29
    • 2011-03-08
    • 2012-07-15
    相关资源
    最近更新 更多