2013-06-04 38 views
1

我遇到問題,在iTunes Connect中設置適當的耗材出現在我的表中的nib文件中。 (使用雷文德里希的教程)如何在目標C中的表格中顯示選定的耗材目錄C

我已經設置了11個消耗品,它們有兩個不同的集合;硬幣和類別。

我想要做的是有兩個按鈕,每個按鈕都將用戶帶到不同的表格。根據表格顯示不同的設置。

我已經嘗試了幾個小時才能使這個工作,我不能做到這一點;所以我向鞠躬的StackOverflow社區的力量來幫助。

目前我的設置如下:

NSSet * productIdentifiers = [NSSet setWithObjects: 
            @"com.ac.scramble.coins1", 
            @"com.ac.scramble.coins2", 
            @"com.ac.scramble.coins3", 
            @"com.ac.scramble.coins4", 
            @"com.ac.scramble.coins5", 
            @"com.ac.scramble.category1", 
            @"com.ac.scramble.category3", 
            @"com.ac.scramble.category5", 
            @"com.ac.scramble.category8", 
            @"com.ac.scramble.category15", 
            @"com.ac.scramble.category30", 
            nil]; 

     sharedInstance = [[self alloc] initWithProductIdentifiers:productIdentifiers 

所設置的是通過iTunes連接沒有問題。

這裏顯而易見的問題是,在我想要顯示6行的第一個筆尖中,它顯示了上面列表中的最後六個(不知道爲什麼最後六個而不是前六個)。這很好,但在想要顯示5行的第二個筆尖中,它顯示了上面列表中的最後五個筆畫。我不希望這一點 - 我希望它顯示前五名(硬幣)。

我試過將NSSet分成兩個並通過,但我無法讓它工作。我不知道是否可以在代碼中指定要顯示的集合中的哪些行。相關的代碼(我相信)這可能是我需要做一些欺騙的地方是:

- (void)reload { 
_products = nil; 
[self.table2 reloadData]; 
[[RageIAPHelper sharedInstance] requestProductsWithCompletionHandler:^(BOOL success, NSArray *products) { 

    if (success) { 
     _products = products; 
     [self.table2 reloadData]; 
    } 
    //[self.refreshControl endRefreshing]; 
}]; 
} 



- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 

static NSString *simpleTableIdentifier = @"SimpleTableCell"; 


SimpleTableCell *cell = (SimpleTableCell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier]; 

if (cell == nil) 
{ 
    NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"SimpleTableCell" owner:self options:nil]; 
    cell = [nib objectAtIndex:0]; 
} 

SKProduct *product = (SKProduct *) _products[indexPath.row]; 

cell.nameLabel.text = product.localizedTitle; 
NSLog(@"Localized title: %@", product.localizedTitle); 
cell.thumbnailImageView.image = [UIImage imageNamed:[thumbnails3 objectAtIndex:indexPath.row]]; 
cell.descriptionLabel.text = [descriptions3 objectAtIndex:indexPath.row]; 

[_priceFormatter setLocale:product.priceLocale]; 
//cell.detailTextLabel.text = [_priceFormatter stringFromNumber:product.price]; 
cell.progressLabel.text = [_priceFormatter stringFromNumber:product.price]; 
cell.descriptionLabel.text = product.localizedDescription; 
} 

感謝所有提前。

+0

如何拆分集合不起作用?您可以使用NSPredicate來僅篩選出您想要的產品。 – Wain

+0

嗨Wain--就我所要做的事情而言,有兩件事 - 創建productIdentifiers和productIdentifiers2並調用兩個sharedInstances。這不起作用,因爲它只計算第二次電話。然後,我嘗試將一個變量傳遞給'如果我點擊硬幣按鈕,給我這組產品標識符,否則給我最後一個'的行上的助手類 - 也沒有工作。在這種情況下,我從來沒有使用過NSPredicate - 你能解釋一下你會如何在這裏使用它嗎?謝謝你的幫助! – user1309044

+0

請注意,NSSet是無序的,所以重要的是不要將其中的數據視爲「行」。我會建議有兩套。每種產品類型一個。 – JonathanC

回答

0

我設法找出答案,它確實分裂了設置。這可能不是這樣做的最有效的方式,但是我使用了11個元素的集合,並根據我想要的是哪一個,我使用removeLastObject或removeObjectAtIndex [0]方法來獲得我想要的。感謝大家的幫助!