2012-10-27 4 views
1

Ive의 코드는 다음과 같습니다.iOS 방법 내부에서 사전 값이 설정되지 않음

잠시 디버깅하려고합니다. 그것을 알아낼 수 없습니다.

[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 메서드에서 Singleton과 Dictionary를 초기화하고 있습니다

분명히 잘못한 일이 있습니까?

+0

사전을 올바르게 초기화 했습니까? – Sparq

+0

예보기 didload 메소드에서 다음과 같이 수행됩니다. ----- self.vManager.vendor_dict = [[NSMutableDictionary alloc] initWithCapacity : 1000]; – banditKing

+0

위 메소드를 실행하기 전에 초기화가 호출되는지 확인하십시오. 괜찮 으면 [aVendor name] 값이 올바른 문자열인지 확인하십시오. – iDev

답변

1

SINGLETON 클래스 자체에서 사전을 초기화해야한다고 생각합니다. 나는 어제 같은 일을 시도했고 효과가있었습니다.

그냥 사전에 함수를 만들고 거기에서 사전을 초기화하고 해당 사전을 사용하기 전에 해당 함수를 호출하십시오.

확실히 작동합니다.

관련 문제