小编wqy*_*vor的帖子

无法使用Swift中的NSCoder解码Int

我正在使用Xcode8 Beta和Swift 3.0.我试图在NSObject上编码一个简单的对象,但我无法解码Int或NSInteger类型.(编码过程没问题)

在此输入图像描述

代码

class Model : NSObject, NSCoding {
    var seq: NSNumber?
    var seq2: Int? // problem with seq2, NSInteger is not ok, either
    var id: String?
    var value: String?

    override init() {
        super.init()
    }

    required init?(coder aDecoder: NSCoder){
        self.seq = aDecoder.decodeObject(forKey: "seq") as? NSNumber
        self.seq2 = aDecoder.decodeInteger(forKey: "seq2")
        self.id = aDecoder.decodeObject(forKey: "id") as? String
        self.value = aDecoder.decodeObject(forKey: "value") as? String
    }

    func encode(with aCoder: NSCoder){
        aCoder.encode(seq, forKey: "seq")
        aCoder.encode(seq2, forKey: "seq2")
        aCoder.encode(id, forKey: "id")
        aCoder.encode(value, forKey: "value")
    } …
Run Code Online (Sandbox Code Playgroud)

xcode objective-c swift

10
推荐指数
1
解决办法
5112
查看次数

C++ vector emplace_back调用复制构造函数

这是一个演示类.我不希望我的类被复制,所以我删除了复制构造函数.我希望vector.emplace_back使用这个构造函数'MyClass(Type type)'.但这些代码不会编译.为什么?

class MyClass
{
public:
    typedef enum
    {
        e1,
        e2
    } Type;
private:
    Type _type;
    MyClass(const MyClass& other) = delete; // no copy
public:
    MyClass(): _type(e1) {};
    MyClass(Type type): _type(type) { /* the constructor I wanted. */ };
};

std::vector<MyClass> list;
list.emplace_back(MyClass::e1);
list.emplace_back(MyClass::e2);
Run Code Online (Sandbox Code Playgroud)

c++ vector std

9
推荐指数
2
解决办法
6540
查看次数

标签 统计

c++ ×1

objective-c ×1

std ×1

swift ×1

vector ×1

xcode ×1