美文网首页
Swift中如何参数传递空值

Swift中如何参数传递空值

作者: ba78fbce98d5 | 来源:发表于2016-02-17 01:31 被阅读3279次

我们先来看一段代码

<pre>
@interface Student : NSObject
@property (nonatomic, readonly, setter=setName:) NSString *name;
@end

@implementation Student

  • (void)setName:(NSString *)name {
    if (name) {
    self.name = name;
    }
    }

  • (void)cleanName {
    self.name = nil;
    }

@end
</pre>

非常简单的Objective-C的代码片段,当我们不期望传递参数的时候,通常会这么写:

[self setName:nil];

相比而已,Swift传递nil,语法看起来与其相似,但是它不会像Objective-C那样简单。

举个例子,简单实现一个定时器倒计时的功能:

<pre>
class ViewController: UIViewController {

@IBOutlet weak var labelForBinaryCount: UILabel!

var timer = NSTimer()
var binaryCount = 60

override func viewDidLoad() {
    super.viewDidLoad()
    reset(Optional.None)
}

@IBAction func start(sender: AnyObject?) {
    timer = NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector: "countUp", userInfo: nil, repeats: true)
    NSRunLoop.currentRunLoop().addTimer(timer, forMode: NSRunLoopCommonModes)
}

@IBAction func reset(sender: AnyObject?) {
    binaryCount = 60
    updateText()
}

func countUp() {
    binaryCount -= 1
    
    if binaryCount == 0 {
        binaryCount = 60
    }
    updateText()
}

func updateText() {
    labelForBinaryCount.text = "\(binaryCount)s"
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

}
</pre>

我们可以看到,reset(Optional.None),实际上传递的正是nil。

巧妙的利用了Optional的特性。


happy coding happy life.
welcom to my blog.

相关文章

  • Swift中如何参数传递空值

    我们先来看一段代码 @interface Student : NSObject@property (nonatom...

  • swift3.0 中inout关键字

    swift有两种参数传递方式 1.值传递 值传递的是参数的一个副本,这样在调用参数的过程中不会影响原始数据。 2....

  • Swift 函数默认值的猜测

    一. 在swift函数的申明语法中,可以给参数设置默认值,代码如下: 有默认值的函数,可以省略参数的传递 调用一 ...

  • angularJS $http如何传递复杂参数

    简单参数可以通过GET方法中的URL参数名值对传递。那么对复杂的参数(对象)如何传递? 建议使用POST方法。 将...

  • Swift如何修改方法参数

    在Swift中不允许修改方法函数中的参数值,因为方法中参数传递的是值而不是地址,参数被修改时编译器会认为此参数为常...

  • 无标题文章iOS支付宝报错 rsa_private read e

    该错误的引起因素有好几点: 1、传递的参数有空值。在支付宝的支付请求url中,某个参数是空值。这样空值在经过md5...

  • 第七章 函数(2)函数参数和按值传递

    (二)函数参数和按值传递 1.形参,实参,参数和参量 函数参数的传递中,用于接收传递值的变量被称为形参,传递给函...

  • JAVA是按值传递还是按引用传递

    java中对象作为参数传递给一个方法,到底是值传递,还是引用传递? String和int参数传递是按值传递还是引用...

  • Go语言学习笔记(三)

    指针 Go的指针不能运算 参数传递 Go的参数传递是值传递(值传递:开辟新的空间,拷贝传递参数的值,引用传递:引用...

  • 数据结构与算法 javascript

    基础概念 javascript中,函数的参数传递方式都是按值传递,没有按引用传递的参数。但是javascript中...

网友评论

      本文标题:Swift中如何参数传递空值

      本文链接:https://www.haomeiwen.com/subject/ipxmkttx.html