【发布时间】:2015-09-15 15:01:30
【问题描述】:
我有一个类可以获取所有国家/地区代码,并且应该按字母顺序对它们进行排序。该类在 Xcode for ios 中运行良好,但是当我复制它以在操场上测试它时出现错误。见图片。
所以我剥离了所有代码,发现 NSMutableArray 没有正确声明,所以将它们更改为这个。
var countries:NSMutableArray = NSMutableArray()
var countryKeys:NSMutableArray = NSMutableArray()
var countryNames:NSMutableArray = NSMutableArray()
它消除了错误,但代码不会运行。没有错误也没有输出。
有人知道为什么这段代码不能在操场上运行吗?是bug吗?
这里有完整的代码
struct countryCodes{
var countries:NSMutableArray = NSMutableArray()
var countryKeys:NSMutableArray = NSMutableArray()
var countryNames:NSMutableArray = NSMutableArray()
init(){
for code in NSLocale.ISOCountryCodes() {
let id = NSLocale.localeIdentifierFromComponents([NSLocaleCountryCode: code])
let name = NSLocale(localeIdentifier: "en_UK").displayNameForKey(NSLocaleIdentifier, value: id) ?? "Country not found for code: \(code)"
self.countries.addObject(["key":id,"value":name])
}
self.sortByValue()
}
private func sortByValue(){
let descriptor: NSSortDescriptor = NSSortDescriptor(key: "value", ascending: true)
extractToArrays(self.countries.sortedArrayUsingDescriptors([descriptor]))
}
private func extractToArrays(sortedCountries:NSArray){
for item in self.countries{
self.countryKeys.addObject(item["key"] as! String)
self.countryNames.addObject(item["value"] as! String)
}
}
}
我尝试打开一个新的游乐场,但立即出现错误
//: Playground - noun: a place where people can play
import UIKit
var str = "Hello, playground"
错误
file:///Volumes/External/Xcode%20Projects/MyPlayground3.playground/:错误:Playground 执行中止:执行被中断,原因:EXC_BAD_ACCESS(代码=1,地址=0x8)。
【问题讨论】:
-
请发布您的代码,以便我们进行测试。
-
为我工作 (screenshot)...
-
你为什么使用
NSMutableArray而不是Swift数组?我认为这让事情变得比需要的更难。 -
@EricD。无法查看您的屏幕截图。我没有 Evernote 帐户。有趣的是为什么它不在我的操场上运行。会不会是某种配置问题?
-
@AlMartin screenshot
标签: ios swift xcode7 swift-playground