2015-04-02 56 views
0

我有以下代碼..的NSSet SetByArray困惑,爲什麼我有一個額外的元素 - SKProductsRequest不能正常工作

NSArray *productIdentifiersArray = [packs valueForKey:NSStringFromSelector(@selector(productIdentifier))]; 
NSSet *productIdentifiers = [NSSet setWithArray:productIdentifiersArray]; 

請參閱下面的圖片... 爲什麼會出現在第一個插槽一個額外的元素的NSSet。我不太清楚如何調試,但我知道我需要NSSet for SKProductsRequest。

enter image description here

+0

看起來是正確的,你的數組中有空負載的字符串... – Wain 2015-04-02 18:27:44

+0

這些是沒有productID的免費項目。任何想法,爲什麼我只有一個空的字符串元素而不是10? – whoaaallamapajama 2015-04-02 18:29:25

+2

我看,因爲他們是一樣的... – whoaaallamapajama 2015-04-02 18:30:39

回答

1

您的代碼做的正是你問什麼,從此陣列修剪重複的對象。它不會將空串刪除,但它們完全有效。

理想情況下,你不會在數組中的空字符串,但最壞的情況下,您可以在使用它之前刪除空字符串。

如果您使用空字符串進行請求,它會稍微慢一點,並會將空字符串作爲無效標識符返回給您。

+0

謝謝,真的。我的整體實際問題是來自SKProductsRequest的'NSArray * products'在下一部分代碼中返回0個產品。我懷疑空串會導致這種情況,對吧? – whoaaallamapajama 2015-04-02 18:36:10

+1

不,它不應該 – Wain 2015-04-02 19:01:15

+0

啊哈! (NSString * invalidProductId in response.invalidProductIdentifiers){NSLog(@「Invalid product id:%@」,invalidProductId); }' – whoaaallamapajama 2015-04-02 22:27:50