2 qq 30970529 qq_30970529 于 2016.04.18 16:00 提问

swift 类中使用泛型报错 2C

小弟刚刚学swift些了一段代码但是运行时报错感觉很迷惑,希望有人可以解惑什么地方错了:

 class Pushpop<T> {
    var items = [T]()
    func push(item:T) {
        items.append(item)
    }
    func pop() {
        items.removeLast()
    }

}
var stack = Pushpop<String>()
stack.push("things")
stack.push("other")
stack.pop()
stack.push("ss")
for item in stack.items {
    print(item)
}

图片说明

4个回答

CSDNXIAOD
CSDNXIAOD   2016.04.18 16:13

swift 报错
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

magicioney
magicioney   2016.04.18 16:35

你在哪里运行的?我在playground上跑了一遍,无误。

qq_30970529
qq_30970529 回复magicioney: xcode中的Command Line Tool工程
一年多之前 回复
magicioney
magicioney Xcode的版本7.3
一年多之前 回复
qq_30970529
qq_30970529   2016.04.18 16:46

xcode中的Command Line Tool工程

magicioney
magicioney 回复一步一迹: 加微信交流吧,我也菜鸟,互相交流经验,手机号13516222070
一年多之前 回复
qq_30970529
qq_30970529 回复magicioney: 一开始的struct是可以的:struct Pushpop<T> { var items = [T]() mutating func push(item:T) { items.append(item) } mutating func pop() { items.removeLast() } init(){} } var stack = Pushpop<String>() stack.push("things") stack.push("other") stack.pop() stack.push("ss") for item in stack.items { print(item) }
一年多之前 回复
qq_30970529
qq_30970529 回复magicioney: 其实我这段代码一开始是struct 结构体是可以的,后来我把struct 改成class,去掉mutating就不行了
一年多之前 回复
qq_30970529
qq_30970529 回复magicioney: 加了初始化方法还是不行的。Xcode无法更新到7.3因为MAC现在的版本是10.10.5,这个每次更新mac版本都出错
一年多之前 回复
magicioney
magicioney 回复一步一迹: 类里增加一行:init(){}
一年多之前 回复
magicioney
magicioney 回复一步一迹: 如果还不行,就升级一下xcode吧
一年多之前 回复
magicioney
magicioney 回复一步一迹: 建议你定义一个构造方法试一试,也许是因为你没定义构造方法导致的。
一年多之前 回复
magicioney
magicioney 回复一步一迹: 是不是版本问题,反正我这里是没问题,我这7.3
一年多之前 回复
qq_30970529
qq_30970529 回复magicioney: 版本是7.2
一年多之前 回复
magicioney
magicioney 我直接copy你的代码执行,还是没有错误,你的xcode版本是多少
一年多之前 回复
magicioney
magicioney 推荐你用playground感觉好使多了。
一年多之前 回复
magicioney
magicioney 我这里依然无误
一年多之前 回复
u010850027
u010850027   2016.04.18 19:42

没有错误啊,这段代码!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!