不确定这是否是XCode 6(我使用Beta 4)或预期行为的错误.
当我在导航控制器中有一个视图控制器并且"推送"(不推荐使用segue)表视图控制器(TVC)时,我可以将一个条形按钮项目拖动到TVC中的导航栏.

当我做同样的但是'show'(新的自适应segue)TVC时,Bar Button项目会掉到底部,实际上在我构建项目时并没有出现.

解决此问题的方法是将其设置为"推"开始,拖动条形按钮项,然后将segue更改为"显示".但是 - 这有必要吗?这是一个XCode Bug还是我错过了什么?
我想知道在一个只包含初始化功能的简单类中初始化器的协议等价物是什么,并且仅用于在具体类中扩展.
所以最简单的方法就是显示代码 - 我正在寻找相当于以下内容的协议扩展:
import UIKit
class Thing {
var color:UIColor
init(color:UIColor) {
self.color = color
}
}
class NamedThing:Thing {
var name:String
init(name:String,color:UIColor) {
self.name = name
super.init(color:color)
}
}
var namedThing = NamedThing(name: "thing", color: UIColor.blueColor())
Run Code Online (Sandbox Code Playgroud)
我期待代码看起来像:
protocol Thing {
var color:UIColor {get set}
}
extension Thing {
init(color:UIColor) {
self.color = color
}
}
class NamedThing:Thing {
var name:String
var color:UIColor
init(name:String,color:UIColor) {
self.name = name
self.init(color:color)
}
}
Run Code Online (Sandbox Code Playgroud)
我已经看到其他StackOverflow问题中建议的解决方案(例如,如何在协议扩展中定义初始化器?)但我不确定它们是否有效,也没有专门解决类初始化程序中的其他参数问题.
使用@IBDesignable类时,我突然发现一个奇怪且可重现的错误,@ IBInspectable属性发出以下警告:
Main.storyboard:warning:IB Designables:忽略"UIButton"实例上关键路径"test"的用户定义的运行时属性.尝试设置其值时遇到异常:[setValue:forUndefinedKey:]:此类与密钥测试不符合密钥值编码.
要明确这个警告只是Xcode中的一个问题,它打包很好.仍然很烦人!
重现步骤
使用@IBInspectable String属性创建自定义的@IBDesignable UIButton子类:
import UIKit
@IBDesignable
class TempButton: UIButton {
@IBInspectable var test:String = ""
}
Run Code Online (Sandbox Code Playgroud)
我尝试了几个解决方案 - 不同的变量名称,使'test'属性成为可选,使用初始化程序,到目前为止没有运气.
以下是问题的截屏:
我已经创建了PFObject的子类,基本上遵循parse.com文档的说明,并在本地固定对象.解析文档似乎没有用于检索PFObject子类,我想知道 - 是否可以将检索到的对象转换为PFObject子类.如果是这样,怎么样?
(我知道如果不可能,可能需要根据PFObject的检索属性重新实例化子类.)
let query = PFQuery(className:Armor.parseClassName())
query.fromLocalDatastore()
query.findObjectsInBackgroundWithBlock({
(objects:[AnyObject]?, error: NSError?) in
if let error = error {
// There was an error
} else {
if let objects = objects as? [PFObject] {
for object in objects {
//This println is outputting to the console:
println("PFObject object retrieved")
if let object = object as? Armor {
//This println is NOT outputting to the console:
println("PFObject object cast as Armor")
}
}
}
}
})
Run Code Online (Sandbox Code Playgroud)