2015-09-17 4 views
7

मैंने अभी 1.2 से 2 तक अपग्रेड किया है। मुझे एक सरणी मिल रही है 'अनुपलब्ध है: कृपया अपने आलसी अनुक्रम से एक ऐरे बनाएं: ऐरे (...) और मैं इससरणी अनुपलब्ध है: कृपया अपने आलसी अनुक्रम से एक ऐरे बनाएं: ऐरे (...)

MyVariables.selectedUser = MyVariables.dictionary.keys.array[indexPath.row] as String 

क्या "MyVariables.dictionary.keys.array [indexPath.row] स्ट्रिंग के रूप में" करने के लिए बदल दिया जाना चाहिए कि कैसे ठीक करने के लिए चारों ओर मेरे आगे लपेट नहीं कर पा रहे?

उत्तर

10

यह कह रहा है कि array आलसी अनुक्रम पर संपत्ति keys द्वारा वापस आती है अब उपलब्ध नहीं है। स्विफ्ट 2 में, आप एक सरणी में आलसी अनुक्रम कन्वर्ट करने के लिए एक प्रारंभकर्ता का उपयोग करें:

MyVariables.selectedUser = Array(MyVariables.dictionary.keys)[indexPath.row] as String 
+1

काम किया !! !!! आपका बहुत बहुत धन्यवाद –

1

Swift1.2 में, शब्दकोश पर मूल्यों LazyForwardCollection> प्रकार .array संपत्ति लौटने सरणी है कि देता है।

स्विफ्ट 2 में, शब्दकोश पर मूल्य लौटता है LazyMapCollection < [कुंजी: मान], मूल्य>, और .array संपत्ति छोड़ दी जाती है क्योंकि हम ऐरे (dict.values) के साथ ऐरे का निर्माण कर सकते हैं।

इस मामले में आप इन पंक्तियों

का उपयोग ** सरणी = सरणी दे सकते हैं (arrayLiteral: myVariable .keys)

वर selectedUser = [indexPath.row] **

संबंधित मुद्दे