iOS学习之委托及属性

原创 2013年12月04日 21:01:03

今天接触到了在以后的iOS开发中经常使用的知识:委托

委托是OC中使用非常频繁的一种设计模式,它的实现与协议的使用是分不开的

顾名思义是一个人让另一个人做自己要做却不想做的事

 

空说没有意义还是来看一个例子吧

假设我要盖一座房子,但是我不想自己亲自去盖,想要外包给别人这时候用委托实现

 

首先写一个building协议

#import <Foundation/Foundation.h>

@protocol building <NSObject>

@required

 

- (void)bulid;//协议里有必须实现的bulid方法

 

@end

 

 

再建一个Me

#import <Foundation/Foundation.h>

#import "building.h"

@interface Me : NSObject

//拥有一个委托对象

@property (assign,nonatomic) id<building> team;

 

- (void)bulideHose;//盖房子

@end

 

 

#import "Me.h"

 

@implementation Me

@synthesize team = _team;

- (void)bulideHose

{

    NSLog(@"我想盖房子,但是不想自己做,我出钱让别人做。");

    [_team bulid];//让委托对象去做

}

@end

 

 

最后创建Others类

 

#import <Foundation/Foundation.h>

#import "building.h"

@interface Others : NSObject<building>

 

@end

 

@implementation Others

- (void)bulid

{

    NSLog(@"给我钱我来盖");

}

@end

 

最后在main函数中

 

  Me *wo = [[Me alloc]init];

        Others *oth = [[Others alloc]init];

        wo.team = oth;//把委托对象设为oth

       

        [wo bulideHose];//调用方法

 

最后结果

 

这样就实现了委托

 

再有今天查了一下关于属性的知识

 

assign: 简单赋值  不会更改索引数(Reference counting)主要是基本数据型使用 eg:(NSIntegerCGFloat C言的 int double floatchar  ...


retain: 放旧的将旧象的值赋并将象的索引数+1 ,主要用与NSObject与其子.


copy: 建一个索引1放掉原来的 


readonly:  表示只属性  只会生成getter方法不会生成setter方法,eg


readwrite:置可供访问级别,可写,readonly


nonatimic:非原子访问,不加同步,多线程并发访问提高性能线程的保,防止在未写完,被另一个线取,造成数据)。

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

IOS中UIScrollView的属性和委托方法

很久没写相关技术博客,这段时间,从2012年6月份开始,就没怎么去做项目,相关知识也没去去补充学习。这段时间做的都是些局外的其他事情,瞎折腾。 有学习心得就记录下来,以便日后翻看。      ht...

iOS 工作之余小总结之(六)(1) --四种界面反向传值的方式:属性传值,回调方法传值,委托(代理)传值,block传值

我们在做应用时,传值是必不可少的工作,总结一下这四种传值方式,尤其是反向传值,我会在接下来的四个博客中一一总结。 属性传值的反向传值,所谓的属性传值,主是拿到传值类的控制器对象,之后再往这个控...

iOS中的属性传值和委托模式

本文主要是根据自己的实际操作和学习,对委托协议模式传值以及属性传值方式的一个形象具体的理解,方便技术学习的更好的理解有关属性传值及委托协议传值。便于人们更好的运用!...

iOS 属性学习笔记

一、内存相关1、内存分区: 不需要程序员管理 基本数据类型(struct enum int double float char等)不需要 存储在栈区 -------- 栈区 -------- 需要程序...

iOS学习 详解文本属性Attributes

1.NSKernAttributeName: @10 调整字句 kerning 字句调整               2.NSFontAttributeName : [UIFont systemFo...

iOS开发学习第二十一课——属性 / 点语法

1.属性 //属性:为你自动生成setter和getter //能在⼀定程度上简化程序代码,并且增强实例变量的访问安全性 //属性声明的写法 //@property 数据类型 实例变量名;...

(0022)iOS 开发之@property的属性Weak Strong的深入学习

最近做项目发现经常有一些疑惑,发现一些天天写的代码理解的不是很清楚,于是准备对一些问题进行彻底的总结、深究,以此夯实基础!记录在案。   1.@property 的介绍: 与@s...

IOS控件学习:UILabel常用属性与用法

原文链接:http://duchengjiu.iteye.com/blog/2041391

ios学习之变量声明及属性编码规范

其实我个人还是觉得, 没有哪一种是官方的规范写法,看apple的官方示例,好像也有不同的写法。本篇只是说明自己倾向编码规则。     一 什么时候用self.xxx的形式   类内部访问变量...

学校学习ios教程笔记,第七节swift中的类与对象的属性和懒加载

// // main.swift // 类和对象 // // Created by lanou on 16/10/27. // Copyright (c) 2016年 lanou. ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS学习之委托及属性
举报原因:
原因补充:

(最多只允许输入30个字)