我创建了一个程序,根据自定义对象输入函数计算某些国家/地区的边界。此函数返回自定义对象的数组。尝试将此数组添加到NSMutableArray时,我不断收到此错误。该错误称为“线程1:EXC_BAD_INSTRUCTION(代码= EXC_1386_INVOP,子代码= 0x0)”。
这是我的添加代码:
func relate(X : develop) -> Array<develop>{
var A : [develop] = []
for (_, value) in groups {
for y in value {
if y.name == X.name {
for i in value {
if i.name != X.name {
A.append(i)
}
}
}
}
}
return A
}
//Groups
var groups = [
"one": [Afghanistan]
]
这是关联方法和组字典:
class develop : NSObject, NSCoding {
//Shared
var power : Int!
var name : String!
var image : UIImage!
var flag : UIImage!
var militaryName : String!
//Military
var experience : Int!
var OATC : Int!
var navy : Int!
var airforce : Int!
var artillery : Int!
//Geography
var borders : NSMutableArray!
var cities : NSMutableArray!
//Biomes
var biom : NSMutableArray!
var continent : String!
var NSEW : String!
//Encoding Section
required convenience init(coder decoder: NSCoder) {
self.init()
//shared
self.power = decoder.decodeObjectForKey("power") as! Int
self.name = decoder.decodeObjectForKey("name") as! String
self.image = decoder.decodeObjectForKey("image") as! UIImage
self.flag = decoder.decodeObjectForKey("flag") as! UIImage
self.militaryName = decoder.decodeObjectForKey("militaryName") as! String
//Military
self.experience = decoder.decodeObjectForKey("experience") as! Int
self.OATC = decoder.decodeObjectForKey("OATC") as! Int
self.navy = decoder.decodeObjectForKey("navy") as! Int
self.airforce = decoder.decodeObjectForKey("airforce") as! Int
self.artillery = decoder.decodeObjectForKey("artillery") as! Int
//Geography
self.borders = decoder.decodeObjectForKey("borders") as! NSMutableArray
self.cities = decoder.decodeObjectForKey("cities") as! NSMutableArray
self.continent = decoder.decodeObjectForKey("continent") as! String
self.NSEW = decoder.decodeObjectForKey("NSEW") as! String
}
convenience init(
power: Int, name: String, image: UIImage, flag: UIImage,
relations: NSMutableArray, mName: String, experience: Int,
OATC: Int, navy: Int, airforce: Int, artillery: Int,
borders: NSMutableArray, cities: NSMutableArray,
biom: NSMutableArray, continent: String, NSEW: String )
{
self.init()
//shared
self.power = power
self.name = name
self.image = image
self.flag = flag
self.militaryName = mName
//military
self.experience = experience
self.OATC = OATC
self.navy = navy
self.airforce = airforce
self.artillery = artillery
//geography
self.borders = borders
self.cities = cities
self.biom = biom
self.continent = continent
self.NSEW = NSEW
}
func encodeWithCoder(coder: NSCoder) {
//Shared
if let power = power { coder.encodeObject(power, forKey: "power") }
if let name = name { coder.encodeObject(name, forKey: "name") }
if let image = image { coder.encodeObject(image, forKey: "image") }
if let flag = flag { coder.encodeObject(flag, forKey: "flag") }
if let militaryName = militaryName { coder.encodeObject(militaryName, forKey: "militaryName") }
//Military
if let experience = experience { coder.encodeObject(experience, forKey: "experience") }
if let OATC = OATC { coder.encodeObject(OATC, forKey: "OATC") }
if let navy = navy { coder.encodeObject(navy, forKey: "navy") }
if let airforce = airforce { coder.encodeObject(airforce, forKey: "airforce") }
if let artillery = artillery { coder.encodeObject(artillery, forKey: "artillery") }
//geography
if let borders = borders { coder.encodeObject(borders, forKey: "borders") }
if let cities = cities { coder.encodeObject(cities, forKey: "cities") }
if let biom = biom { coder.encodeObject(biom, forKey: "biom") }
if let continent = continent { coder.encodeObject(continent, forKey: "continent") }
if let NSEW = NSEW { coder.encodeObject(NSEW, forKey: "NSEW") }
}
}
以下是开发类:
{{1}}
“阿富汗”是发展的子类