分类: Swift

  • 微信 iOS SDK OAuth 登录没有 onResp 回调

    真机iphone 6
    xcode 6.1
    target: ios 8.1

    Appdelegate里已经registerApp了,Controller也实现了WXApiDelegate。

    解决方法:在info.plist文件的URL types中的URL Schemes 加入微信开放平台申请的AppID

  • Swift类型之间转换

    Int转换Float或Double:

    let intVar : Int = 3
    let doubleVar : Double = Double(intVar)

    Int转换为String:

    let intVar : Int = 3
    let strVar : String = String(intVar)

     

    String转换为Int:

    let strVar : String = "123"
    let intVar : Int? = strVar.toInt()

    Double转换为String:

    let doubleVar : Double = 3.14
    let strVar : String = String(doubleVar)

    Double保留两位小数,需要对Double进行扩展:

    extension Double {
        func format(f: String) -> String {
            return NSString(format: "%\(f)f", self)
        }
    }
    let myDouble = 1.234567
    println(myDouble.format(".2")

    String转换Double:

    let strVar : String = "3.14"
    var string = NSString(string: strVar)
    string.doubleValue
  • 使用Storyboard进行简单的界面跳转并传递参数

    使用storyboard结合代码来做确实可以给开发带来很多的便利。

    在实践的过程中,我们经常会遇到界面的跳转问题。通过控件和界面的建立的“连接”就可以了。

    如果是navigationcontroller的跳转,则选择push的方式(否则xcode运行的时候会报错);

    如果是Viewcontroller的跳转,则选择modal的方式。

    如果你想通过代码来打开另外一个界面,则需要设置他们之间连接的segue.identifier,比如你设置为jumpid。

     

    然后代码就可以这么写:

    self.performSegueWithIdentifier("jumpid", sender:self);

     

    如果你还想在跳转的时候传递数值过去,你可以这么写:

    override func prepareForSegue(segue:UIStoryboardSegue, sender: AnyObject?) {
            if(segue.identifier =="jumpid") {
                var barInfo:BarInfoViewController = segue.destinationViewControlleras! BarInfoViewController;
                barInfo.name ="david";
                barInfo.age =99;
            }
        }

     

  • swift中view之间的手写代码切换

    let mainStoryboard = UIStoryboard(name: "你的storyboard名字", bundle: NSBundle.mainBundle())
    let vc : UIViewController = mainStoryboard.instantiateViewControllerWithIdentifier("你的viewcontroller的storyboard ID") as UIViewController
    self.presentViewController(vc, animated: true, completion: nil)