2013-05-25 3 views
0

이 문제로 고생하고 있습니다. .. 원격 PLIST iOS 다운로드 중 - Null Return

그러나 사전에 내용을 읽어 어려움을 겪고

이 ... 코드 아래, 어떤 포인터가 좋은 것 ... 내 응용 프로그램 내부 사용을 위해

-(void)loadProducts { 


NSDictionary *dict = [NSDictionary dictionaryWithContentsOfURL:[NSURL URLWithString:@"https://dl.dropboxusercontent.com/s/f1nmq1wa7gs96dp/Region1Products.plist"]]; 


for (NSDictionary* productDictionary in dict) { 
    ProductItem* productItem = [[ProductItem alloc] init]; 

    productItem.picturesCount = [productDictionary objectForKey:@"PicturesCount"]; 
    productItem.maxPicturesCount = [productDictionary objectForKey:@"MaxPicturesCount"]; 
    productItem.size = [productDictionary objectForKey:@"Size"]; 
    productItem.previewImageName = [productDictionary objectForKey:@"ImageName"]; 
    productItem.sequence = [productDictionary objectForKey:@"Sequence"]; 
    productItem.productName = [productDictionary objectForKey:@"Name"]; 
    productItem.type = [productDictionary objectForKey:@"ProductType"]; 
    productItem.prices = [productDictionary objectForKey:@"Prices"]; 
    productItem.shippingPrices = [productDictionary objectForKey:@"ShippingPrices"]; 
    productItem.description = [productDictionary objectForKey:@"Description"]; 
    productItem.popupMessage = [productDictionary objectForKey:@"PopupMessage"]; 
    productItem.popupDetailMessage = [productDictionary objectForKey:@"PopupDetailMessage"]; 
    productItem.incrementalPricing = [[productDictionary objectForKey:@"IncrementalPricing"] boolValue]; 
    if (YES == productItem.incrementalPricing) { 
     productItem.incrementalPrices = [productDictionary objectForKey:@"IncrementalPrices"]; 
    } 

    NSArray *previewItems = [productDictionary objectForKey:@"PreviewItems"]; 
    for (NSDictionary* previewItem in previewItems) { 
     [productItem addProductPreviewItemFromDictionary:previewItem]; 
    } 

    [self.productsList addObject:productItem]; 
} 
+0

이 항목을 할당하십시오.이 문제는 제 친구 –

답변

1

을 읽기 전용 PLIST를 다운로드 찾고 당신 ' URL에서 NSDictionary를 다시 만들지 만 그 plist의 최상위 객체는 배열입니다. 이 문제를 해결하기 위해 dict을 NSArray 객체로 변경할 수 있습니다. 이 간단한 코드를 사용하여 이것을 테스트했습니다.

NSArray *array = [NSArray arrayWithContentsOfURL:[NSURL URLWithString:@"https://dl.dropboxusercontent.com/s/f1nmq1wa7gs96dp/Region1Products.plist"]]; 

for (NSDictionary* productDictionary in array) { 
    NSLog(@"%@",productDictionary); 
} 
+0

정말 고마워요! – danielsteel

+0

정렬하고 간단한 대답 아주 좋은 –

+0

이제 plist가 현재 캐시되고있는 나이 오래된 문제가 있습니다. 이런 일이 일어나지 않도록하는 어떤 아이디어 나 기법? 어쩌면 stringByAppendingFormat? – danielsteel