NSNotificationCenter



//MRC机制

-(void)dealloc

{

    //移除通知

    //1 暴力型

    [[NSNotificationCenter defaultCenter]removeObserver:self];

    //2 柔和型的 移除某一消息的标示

    [[NSNotificationCenter defaultCenter]removeObserver:self name:@"123" object:nil];

    

}

- (void)viewDidLoad {

    [super viewDidLoad];

    //1 注册通知

    //有通知中心提供的接口注册

    //拿到通知中心对象接口[NSNotificationCenter defaultCenter]

    /**

     *1 observer 观察者 及接收通知的对象 self

     2 selector 就收通知之后要做的事  方法名如果再有参数 参数类型是

     消息载体 NSNotification 类型的

     3 name 消息的机制

     4 object 发送消息的对象 一般是nil

     */

    //1 注册通知

    [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(notification:) name:@"123" object:nil];

    

    //创建按钮

    [self creatButton];

    

}

//创建一个按钮

-(void)creatButton

{

    UIButton*button=[UIButton buttonWithType:UIButtonTypeCustom];

    

    button.frame=CGRectMake(10010010030);

    

    button.backgroundColor=[UIColor orangeColor];

    

    [button setTitle:@"点我给福利" forState:UIControlStateNormal];

   

    

    [button addTarget:self action:@selector(buttonClick:) forControlEvents:UIControlEventTouchUpInside];

    

    [self.view addSubview:button];

}

//button 的事件

-(void)buttonClick:(UIButton*)button

{

    /**

     * 发送机制

     复杂的

     先创建一个消息载体

     1 name 消息的标示  这里的标示 一定要和注册标示 一致 注册者才能收到 此类的标示消息

     2 object 发送消息的对象

     3 userInfo 消息的内容 字典类型

     */

  //  NSNotification*noti=[NSNotification notificationWithName:@"123" object:nil userInfo:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor greenColor],@"color", nil]];

    

    NSLog(@"转到第二页 并开始发送消息1");

    

//    SesondViewController*fvc=[[SesondViewController alloc]init];

//    

//    

//    

//    /**

//     *  重点是CATransition 重点是CATransition 重点是CATransition

//     */

//    CATransition*animation=[CATransition animation];

//    [self.view.layer addAnimation:animation forKey:nil];

//    animation.duration=3;

//    [self presentViewController:fvc animated:YES completion:^{

//        //NSLog(@"跳转完成!");

//    }];

 

    

    

    NSString*str=@"41_6.jpg";

    NSNotification*noti=[NSNotification notificationWithName:@"123" object:nil userInfo:[NSDictionary dictionaryWithObjectsAndKeys:str,@"name"nil]];

    //发送消息

    [[NSNotificationCenter defaultCenter]postNotification:noti];

//

    

    NSLog(@"转到第二页 并开始发送消息2");

    //简单的

   // [NSNotificationCenter defaultCenter]postNotificationName:<#(NSString *)#> object:<#(id)#> userInfo:<#(NSDictionary *)#>

    

}

//接收通知的之后要做的事

-(void)notification:(NSNotification*)noti

{

    SesondViewController*fvc=[[SesondViewController alloc]init];

    /**

     *  重点是CATransition 重点是CATransition 重点是CATransition

     */

    

    UIImageView*backImage=[[UIImageView alloc]initWithFrame:CGRectMake(00320660)];

    //获取消息的内容

    backImage.userInteractionEnabled=YES;

    NSDictionary*dict=noti.userInfo;

    backImage.image=[UIImage imageNamed:dict[@"name"]];

    [fvc.view addSubview:backImage];

    NSLog(@"消息发送成功1");

    

    [backImage addGestureRecognizer:[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(TapGesture:)]];

    

    

    

    CATransition*animation=[CATransition animation];

     animation.duration=2;

    animation.subtype=@"fromLift";

    [self.view.layer addAnimation:animation forKey:nil];

    [self presentViewController:fvc animated:YES completion:^{

        //NSLog(@"跳转完成!");

    }];

    NSLog(@"消息发送成功2");

    

    //接收到消息之后开始执行的任务(把当前的页面改变背景)

   

    

    //[self.view addSubview:backImage];

    //self.view.backgroundColor=dict[@"color"];

    //NSLog(@"%@",dict[@"name"]);

}

-(void)TapGesture:(UITapGestureRecognizer*)tap

{

    [self dismissViewControllerAnimated:YES completion:^{

        //NSLog(@"返回成功ing");

    }];

 

    

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 话管理: SQLAlchemy 使用话(Session)来管理对象的持久化状态。 话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 话管理: SQLAlchemy 使用话(Session)来管理对象的持久化状态。 话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值