小编Cra*_*itt的帖子

Xcode Storyboard问题 - 按钮栏按钮仅出现在TableViewController的底部

不确定这是否是XCode 6(我使用Beta 4)或预期行为的错误.

当我在导航控制器中有一个视图控制器并且"推送"(不推荐使用segue)表视图控制器(TVC)时,我可以将一个条形按钮项目拖动到TVC中的导航栏.

在此输入图像描述

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

在此输入图像描述

解决此问题的方法是将其设置为"推"开始,拖动条形按钮项,然后将segue更改为"显示".但是 - 这有必要吗?这是一个XCode Bug还是我错过了什么?

xcode storyboard ios

11
推荐指数
1
解决办法
8725
查看次数

协议扩展初始化程序

我想知道在一个只包含初始化功能的简单类中初始化器的协议等价物是什么,并且仅用于在具体类中扩展.

所以最简单的方法就是显示代码 - 我正在寻找相当于以下内容的协议扩展:

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问题中建议的解决方案(例如,如何在协议扩展中定义初始化器?)但我不确定它们是否有效,也没有专门解决类初始化程序中的其他参数问题.

protocols initialization swift swift2

11
推荐指数
2
解决办法
1万
查看次数

@IBDesignable - @IBInspectable,类不符合键值编码

使用@IBDesignable类时,我突然发现一个奇怪且可重现的错误,@ IBInspectable属性发出以下警告:

Main.storyboard:warning:IB Designables:忽略"UIButton"实例上关键路径"test"的用户定义的运行时属性.尝试设置其值时遇到异常:[setValue:forUndefinedKey:]:此类与密钥测试不符合密钥值编码.

要明确这个警告只是Xcode中的一个问题,它打包很好.仍然很烦人!

重现步骤

  1. 创建新项目
  2. 使用@IBInspectable String属性创建自定义的@IBDesignable UIButton子类:

    import UIKit
    
    @IBDesignable
    class TempButton: UIButton {
        @IBInspectable var test:String = ""
    }
    
    Run Code Online (Sandbox Code Playgroud)
    1. 将一个Button拖到故事板中的View Controller,并在Identity Inspector中为其提供自定义类"TempButton".
    2. 现在,"测试"属性应出现在"临时按钮"属性的"属性"检查器中 - 在此字段中键入任何内容.
    3. 巴姆!出现上述警告.从字段中删除文本,警告消失.

我尝试了几个解决方案 - 不同的变量名称,使'test'属性成为可选,使用初始化程序,到目前为止没有运气.

以下是问题的截屏:

在此输入图像描述

storyboard swift ibdesignable ibinspectable

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

Swift中的parse.com - 是否可以将检索到的PFObject转换为子类?

我已经创建了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)

ios parse-platform swift

5
推荐指数
1
解决办法
2118
查看次数