星空网 > 软件开发 > 操作系统

iOS 各种传值方式

传值方式

//单例//.h+ (Instannce *)shareInstance;//.mstatic Instannce *instance = nil;@implementation Instannce//定义一个创建单例对象的方法+ (Instannce *)shareInstance {  if (instance == nil) {    instance = [[Instannce alloc] init];  }    return instance;}//使用alloc的时候调用的方法instancetype+ (id)allocWithZone:(struct _NSZone *)zone {  if (instance == nil) {    instance = [super allocWithZone:zone];  }   return instance;}- (id)copy {  return self;}- (id)retain {  return self;}- (NSUInteger)retainCount {  //返回无符号最大值  return UINT_MAX;}- (oneway void)release {  //什么也不做}//代理//.h@protocol GetMessageProtocol <NSObject >- (void)getNum:(NSString *)num withPassWord:(NSString *)pass;@end@property (nonatomic,assign) id<GetMessageProtocol> delegate;//.mif ([self.delegate respondsToSelector:@selector(getNum:withPassWord:)]) {    [self.delegate getNum:num.text withPassWord:passWord.text];  }#pragma mark - GetMessageProtocol- (void)getNum:(NSString *)num withPassWord:(NSString *)pass {  }registerCtrl.delegate = self;//通知 注意postNotificationName 必须一致  [[NSNotificationCenter defaultCenter] postNotificationName:NotificationName object:self userInfo:dic]; //dic存放在userinfo中  dic中存放要传过去的值是个字典//接受通知  [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(changeAction:) name:NotificationName object:nil];//KVO监听/*KVO观察者方法 keyPath: 监听的属性名 object: 被观察的对象 change: 属性值 context: 上下设备文 */  [registerCtrl addObserver:self forKeyPath:@"属性名称1" options:NSKeyValueObservingOptionNew|NSKeyValueObservingOptionOld context:nil];  [registerCtrl addObserver:self forKeyPath:@"属性名称2" options:NSKeyValueObservingOptionNew context:nil];//触发的事件- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {  //object的值是registerCtrl  if ([keyPath isEqualToString:@"属性名称1"]) {      }else if ([keyPath isEqualToString:@"属性名称2"]) {      } }//.h@property (nonatomic, copy) NSString *属性名称1;@property (nonatomic, copy) NSString *属性名称2;//.m  必须通过setter方法改变值或者KVC//KVO方式//触发的事件[indexCollectionView addObserver:self forKeyPath:@"属性名称" options:NSKeyValueObservingOptionNew context:nil];    [posterCollectionView addObserver:self forKeyPath:@"pathIndex" options:NSKeyValueObservingOptionNew context:nil];- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {  //得到改变后的新值  NSInteger index = [[change objectForKey:@"new"] integerValue];  }}//Block block的返回值 block的名称  block的参数  typedef void(^SucccessBlock)(NSString *); //Block的定义@property(nonatomic,copy)SucccessBlock loginBlock; //block的声明 要用copy防止block的循环引用_freindBlcok(friends); block的调用[[MyXMPPManager shareManager] getFreind:^(NSArray *freinds) {}  //block的赋值 实现




原标题:iOS 各种传值方式

关键词:IOS

IOS
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

商标名称选择的注意事项及最佳方法:https://www.kjdsnews.com/a/1389012.html
商标名称注册指南如何选择最佳商标:https://www.kjdsnews.com/a/1389013.html
商标名称审核的全面指南:https://www.kjdsnews.com/a/1389014.html
商标取名方法让你的品牌名称更具有吸引力:https://www.kjdsnews.com/a/1389015.html
商标加项目的注册流程及注意事项:https://www.kjdsnews.com/a/1389016.html
商标加项目如何实现品牌价值最大化:https://www.kjdsnews.com/a/1389017.html
4月1号,德国《大麻法案》正式生效。新的机会独立站爆品一植物生长灯。:https://www.kjdsnews.com/a/1840745.html
4月1号,德国《大麻法案》正式生效。新的机会独立站爆品一植物生长灯。:https://www.goluckyvip.com/news/214215.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流