美文网首页
iOS之传值

iOS之传值

作者: 请输入账号名 | 来源:发表于2017-08-07 09:59 被阅读57次

在iOS中传值的方式有很多种方式,有最普遍的就是属性传值,代理传值,block传值等方式了。
写了OCswift的两个版本的传值demo。

其中需要说明一下的是,这个通知传值。
在通知传值的时候,有的时候会出现如下的问题,也就是当通知中心发出了通知,接收通知的一方却没有收到任何消息。这可能是线程阻塞的原因,只需要将通知中心放在子线程中去处理。

// OC
[[NSOperationQueue mainQueue] addOperationWithBlock:^{
    [[NSNotificationCenter defaultCenter] postNotificationName:@"test" object:self userInfo:@{@"text" : @"请输入账号名"}];
}];
// swift
OperationQueue.main.addOperation {
    let cell = self.tableView.cellForRow(at: IndexPath(row: 4, section: 0))
    let wjNotificationName = Notification.Name.init(rawValue: "notificationTest")
    NotificationCenter.default.post(name: wjNotificationName, object: self, userInfo: ["text" : cell?.textLabel?.text ?? "没有值传入"])
}

单例传值:
在OC和swift中创建单例传值,一般都会创建一个单例类,通过这个单例类来中转,进行传值,也就是说这个单例类就像是个容器一样进行存储数据,也就是说正向反向传值都可以。
但是在OC中和swift中创建单例类还是有些不同:

// OC采用的是GCD或者是其他的方法进行创建
+ (wjSingleTon *)shareSingleTon {
    static wjSingleTon *singleTon = nil;
    static dispatch_once_t predicate;
    dispatch_once(&predicate, ^{
        singleTon = [[self alloc] init];
    });
    return singleTon;
}

// swift创建单例类
// MARK:- 单例类
final class wjSingleTon: NSObject {
    static let sharedInstance = wjSingleTon()
    var text : String!
    override init() {}
}

其他的传值方式在oc和swift中没有多大的差别。

相关文章

  • iOS的五种传值

    前言 iOS常见的五种传值分别为属性传值,通知传值,代理传值,block传值,单例传值 属性传值 用于正向传值,简...

  • iOS传值之通知传值

    思路: 将要传递的值告诉通知中心NSNotificationCenter,然后利用通知中心实现从一个界面到另一个界...

  • iOS之传值

    在iOS中传值的方式有很多种方式,有最普遍的就是属性传值,代理传值,block传值等方式了。写了OC和swift的...

  • ios常用的三种传值方式

    iOS中有多种方案可以实现页面之间的传值,例如:属性传值、代理传值、block传值、单例传值...。常用的三种传值...

  • Block传值

    iOS传值一共有四种:属性传值,代理传值,通知传值以及Block传值; 今天我们来说一下Block传值: 概念:带...

  • iOS 传值方法(属性传值、代理传值、Block、通知、单例)

    iOS 传值方法(属性传值、代理传值、Block、通知、单例)简单的介绍一下几个传值方式 1、属性传值 在传值的时...

  • iOS 常用传值方式

    总结 iOS 日常开发中的几种常用传值方式:正向传值代理传值block传值通知传值单例 文章代码:https://...

  • iOS页面间传值详解(二)

    在iOS页面间传值详解(一)中,介绍了iOS界面间的正向传值以及逆向传值的两种方法,其实逆向传值还可以使用bloc...

  • 【iOS开发细节】之- delegate代理的使用

    在iOS开发中、好多时候需要涉及到页面传值、而传值又分为正向传值和反向传值 一、 传值 1、正向传值 2、反向传值...

  • ioS 页面(代理、通知、block、单例、属性)传值

    iOS 页面(代理、通知、block、单例、属性)传值 一、传值分类 页面传值基本分为两种:正向传值和反向传值。 ...

网友评论

      本文标题:iOS之传值

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