zoukankan      html  css  js  c++  java
  • iOS开发 总结几种传值--extern,NSUserDefaults,Delegate

    1 设置委托(代理模式)
       
       建一个委托testViewDelegate.h
       #import
    //b中的参数传到a
    //设置委托方法,例如本文件
    //在b中.h描述NSObject * delegate;  .m中调委托方法
    //在a中设置b的控制器实现delegate,eg--aViewControll.delegate=self;
    //然后在a中赋值

    @protocol testViewDelegate
    @optional
    -(void)outPut:(NSString *)theTitle;

    @end

    2 extern          
    interface之前定义extern NSString *strZhi;
    .h
    extern NSString *strZhi;
    @interface OneViewController : UIViewController {
    }
    @end

    .m
     NSString *strZhi=@"额的神阿,传值了";
    @implementation OneViewController

    在SplashViewController.m中定义一个变量是这样的

    #import "SplashViewController.h"

    NSString* meString=@"123";

    @implementation SplashViewController

    // NSString* meString=@"123";

    .................

    这两 个地方都行

    如果在另外的类iTennisViewController.m中要用到这个类中的meString时只需在iTennisViewController.m中写成这样

    #import "iTennisViewController.h"

    extern NSString* meString;

    @implementation iTennisViewController

    即可

    这样你在iTennisViewController.m中直接打印meString,你会发现 是123,当然你也可以对meString重新斌值 ,就是说meString虽然定义在SplashViewController.m中但好像是公共的,也称为全局变量吧


    3 NSUserDefaults
    .h
    #define myAvgcost @"myavgcost"
    .m
    [[NSUserDefaults standardUserDefaults] setObject:p_Avgcost_arr forKey:myAvgcost];//写道磁盘
    传到另一个类
    NSArry *myAvgcost_arr=[[NSUserDefaults standardUserDefaults] arrayForKey:myAvgcost];
    4
     单例
    主要是全局共享一个类时主要采用的方式。
    http://blog.csdn.net/cocoa_geforce/article/details/6747595
    5delegate

    主要是要把共享的数据设置为XXDelegate的一个成员变量;

    然后在需要的地方通过如下方法获得一个XXDelegate的对象,如下:

    XXDelegate*app = (XXDelegate *) [[UIApplicationsharedApplicationdelegate];

    每次获取delegate并不是创建一个新app,每个app只有一个delegate

    6 NSNotification (观察者模式)


    7 对象的property属性传值


    8 方法的参数传值


    9 静态方法传值


    10 用给 指向 指针的指针 赋值 的方式传值


    11
    (待续。。)

  • 相关阅读:
    机器学习中的正则化问题(2)——理解正则化
    详解 Python 中的下划线命名规则
    编程面试的算法概念汇总
    group by多字段查询解决礼物统计
    一分钟学会Spring Boot多环境配置切换
    Maven 多模块父子工程 (含Spring Boot示例)
    第1章 Spring Cloud 构建微服务架构(一)服务注册与发现
    第3章 Spring Boot 入门指南
    第5章 Spring Boot 功能
    第4章 CentOS软件安装
  • 原文地址:https://www.cnblogs.com/yingkong1987/p/3334125.html
Copyright © 2011-2022 走看看