Определите структуру, которая рассматривается как класс в Swift

В СвифтеString Структура также рассматривается как объект класса, как при использованииNSCoder encodeObject(_:forKey:) метод. Я знаю чтоString напрямую соединен с классом target-c,NSString, но есть ли способ сделать кастомstruct что ведет себя аналогично? Возможно соедините это с пользовательским классом? Я хочу иметь возможность сделать что-то вроде этого:

struct SortedArray <Value: Comparable> {}

// Would I need to create a bridge between 
// SortedArray and NSSortedArray? Can I even do that?
class NSSortedArray <Value: Comparable> : NSObject, NSCoding {
    required init?(coder aDecoder: NSCoder) {}
    func encodeWithCoder(aCoder: NSCoder) {}
}

class MyClass : NSObject, NSCoding {
    private var objects: SortedArray<String> = SortedArray<String>()
    required init?(coder aDecoder: NSCoder) {
        guard let objects = aDecoder.decodeObjectForKey("objects") as? SortedArray<String> else { return nil }
        self.objects = objects
    }
    func encodeWithCoder(aCoder: NSCoder) {
        aCoder.encodeObject(objects, forKey: "objects")
    }
}

Ответы на вопрос(3)

Ваш ответ на вопрос