小编Yoi*_*aya的帖子

Swift NSUserDefaults setString:forKey:?

有NSUserDefaults的integerForKey:,setInteger:forKey:stringForKey:,但没有setString:forKey:.

如何将字符串设置为NSUserDefaults?它有setObject:forKey:但是,在Swift中,String是一个结构.可以setObject:forKey:用来存储字符串吗?

nsuserdefaults ios swift

17
推荐指数
3
解决办法
2万
查看次数

框架中的Swift @IBInspectable属性未显示到Interface Builder

我正在尝试使用@IBInspectable在Interface Builder中编辑其属性来创建自定义UIViewController的框架.

public class BWWalkthroughPageViewController: UIViewController {
    @IBInspectable public var speed: CGPoint = CGPointZero
    @IBInspectable public var speedVariance: CGPoint = CGPointZero
    @IBInspectable public var animationType: String = ""
    @IBInspectable public var animateAlpha: Bool = false
}
Run Code Online (Sandbox Code Playgroud)

如果框架源代码位于示例应用程序项目中,则属性将出现在Attribute Inspector中,如下图所示,

IBInspectable

但是如果我将构建的框架添加到我的应用程序项目中,则属性不会显示在检查器中.

是否可以在Interface Builder的构建框架中显示可检查的属性?如果可能的话,怎么样?

这是框架源代码,它是从非框架项目派生而来的. https://github.com/yoichitgy/BWWalkthrough/tree/support-carthage

interface-builder ios swift xcode6

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

如何将Swift类型名称作为带有其名称空间(或框架名称)的字符串

有没有办法将Swift类型名称作为带有命名空间(或框架名称)的字符串?

例如,如果Foo.framework有一个名为的类Bar,我想得到类似的字符串"Foo.Bar".

以下只返回类名"Bar".

let barName1 = String(Bar.self)       // returns "Bar"
let barName2 = "\(Bar.self)"          // returns "Bar"
let barName3 = "\(Bar().dynamicType)" // returns "Bar"
Run Code Online (Sandbox Code Playgroud)

我还想将框架名称"Foo"作为命名空间.

ios swift

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

使用Swinject时如何将参数传递给resolve方法?

我有一个测试项目,我试图将参数传递给Swinject项目中的resolve方法.

这是我的Swinject故事板扩展文件中包含的示例.

import Swinject

extension SwinjectStoryboard {

    class func setup() {

        let mainDm = MainDM()

        defaultContainer.register(MainDM.self) { _ in
            mainDm
        }

        defaultContainer.registerForStoryboard(ViewController.self) { r, c in
            c.dm = r.resolve(MainDM.self)
            c.container = defaultContainer

        }


        defaultContainer.register(GetMessageAction.self) { _, delegate in
            GetMessageAction(dm:mainDm, delegate: delegate)
        }

    }

}
Run Code Online (Sandbox Code Playgroud)

在我的ViewController中,我正在尝试执行以下操作来解决GetMessageAction

@IBOutlet weak var myText: UILabel!

    var dm:MainDM!
    var container:Container!

    override func viewDidLoad() {
        super.viewDidLoad()

        NSTimer.scheduledTimerWithTimeInterval(NSTimeInterval(3), target: self, selector: #selector(ViewController.getMessage), userInfo: nil, repeats: false)

    }

    func getMessage() {

        let action:GetMessageAction? = container.resolve(GetMessageAction.self, argument: self)! …
Run Code Online (Sandbox Code Playgroud)

dependency-injection ios swift swinject

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