香港专业教育学院得到以下代码:

尝试调试一段时间。无法解决。

    [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是Singleton,并且正在调用方的viewDidLoad方法中初始化Dictionary

我在做什么,那显然是错误的吗?

最佳答案

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

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

它肯定会工作。

10-04 18:22