Arrays 数组作为Swift中字典中的值:无法追加值

Arrays 数组作为Swift中字典中的值:无法追加值,arrays,swift,dictionary,append,Arrays,Swift,Dictionary,Append,我想要一个函数将对象某物作为字典中的值附加到某物数组中。如果密钥不存在,我想创建它。如果字典[aCategory]为空,它不会进入If var语句(因为是nil),所以我真的不知道如何解决它。我确信使用强制展开我会解决这个问题,但我真的希望使用一种更安全的方法,比如可选的投标 private var theDictionary: [Category:[Something]] = [:] public func add(aSomething: Something, aCategory: Categ

我想要一个函数将对象某物作为字典中的值附加到某物数组中。如果密钥不存在,我想创建它。如果字典[aCategory]为空,它不会进入If var语句(因为是nil),所以我真的不知道如何解决它。我确信使用强制展开我会解决这个问题,但我真的希望使用一种更安全的方法,比如可选的投标

private var theDictionary: [Category:[Something]] = [:]
public func add(aSomething: Something, aCategory: Category{
    if var arrayOfSomethings = theDictionary[aCategory]{
        arrayOfSomethings.append(aSomething)
        theDictionary[aCategory] = arrayOfSomethings
    }
}

您只需处理
else
条件:

if var arrayOfSomethings = theDictionary[aCategory]{
    arrayOfSomethings.append(aSomething)
    theDictionary[aCategory] = arrayOfSomethings
} else {
    theDictionary[aCategory] = [aSomething]
}

您只需处理
else
条件:

if var arrayOfSomethings = theDictionary[aCategory]{
    arrayOfSomethings.append(aSomething)
    theDictionary[aCategory] = arrayOfSomethings
} else {
    theDictionary[aCategory] = [aSomething]
}

用字典[A目录,默认值:[]]替换整个块。追加(aSomething)。用字典[A目录,默认值:[]]替换整个块。追加(aSomething)。