2013-03-29 177 views
0

我想僅在我的AFNetworking請求返回一個json對象爲true時才顯示一個tableview單元格。在這個例子中,我需要將place =「Store」設置爲true才能顯示只顯示商店的表格視圖。條件表視圖單元格顯示

的地點=「商店」 JSON返回爲我location_results在下面的請求陣列的一部分,我把它存儲與self.place = [dictionary objectForKey:@"place"];

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 


    // LoadLocations 

    [[LocationApiClient sharedInstance] getPath:@"locations.json" parameters:nil          success:^(AFHTTPRequestOperation *operation, id response) { 
    NSLog(@"Response: %@", response); 
    NSMutableArray *location_results = [NSMutableArray array]; 
    for (id locationDictionary in response) { 
     Location *location = [[Location alloc] initWithDictionary:locationDictionary]; 
     [location_results addObject:location]; 

    } 
    self.location_results = location_results; 
    [self.tableView reloadData]; 
} 
            failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
             NSLog(@"Error fetching locations!"); 
             NSLog(@"%@", error); 

            }]; 

我知道自己需要改變

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
    return self.location_results.count; 
} 
啓動

但不知道如何。

然後,我應該能夠有條件語句添加到

- (LocationCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
    static NSString *cellIdentifier = @"LocationCell"; 

但不知道如何。

回答

1

如果您有所有結果的工作代碼,那麼結果子集的工作代碼很簡單。引用self.location_results替換,與[self filteredLocationResults],像這樣實現的:

- (NSArray *)filteredLocationResults { 

    return [self.location_results filteredArrayUsingPredicate: 
     [NSPredicate predicateWithFormat:@"(%K like %@)". @"place" ,@"Store"]]; 
} 
+0

這個工作。謝謝! – jacobt

1

你可以把「存儲」項目到表中的數據源:

for (id locationDictionary in response) { 
    Location *location = [[Location alloc] initWithDictionary:locationDictionary]; 
    if([[location objectForKey:@"place"] isEqualToString:@"Store"]) // Add this line 
     [location_results addObject:location]; 

} 
+0

這似乎應該工作,但我得到一個錯誤沒有可見的@interface聲明選擇器objectforkey。我假設我的代碼中缺少某些東西,您預計這會起作用。 – jacobt

+0

好吧,這假設(根據您的問題)該位置是基於NSDictionary。如果沒有,那麼你需要檢查位置對象的位置值... – lnafziger

相關問題