OC开发系列[email protected]和@synthesize

property和synthesize关键字

创建一个Person类。

#import <Foundation/Foundation.h>

@interface Person : NSObject
{
    int _age;
    int _height;
}

- (void)setAge:(int)age;
- (int)age;
@end

#import "Person.h"
@implementation Person

- (void)setAge:(int)age
{
    _age = age;
}
- (int)age
{
    return _age;
}
@end

开发中考虑封装性将成员属性通过提供setter与getter结构供外界访问。但是这些setter跟getter代码没有任何技术含量。于是苹果提供关键字propertysynthesize关键字利用编译器特性将我们自动生成setter跟getter方法。

@property int age;
// - (void)setAge:(int)age;
// - (int)age;

@synthesize age;
/*
- (void)setAge:(int)age
{

}
- (int)age
{

}
*/

@synthesize age虽然帮我们实现了set跟get方法的实现,并未指定将外界传递的值对哪个成员属性进行赋值。如上Person类需要给成员_age复制。

@synthesize age = _age;

原文地址:https://www.cnblogs.com/CoderHong/p/8824866.html

时间: 2024-08-29 16:24:58

OC开发系列[email protected]和@synthesize的相关文章

[email&#160;protected]和@synthesize

@porperty @porperty是一个编译器指令 在Xocde4.4之前, 可以使用@porperty来代替getter/setter方法的声明, 也就是说我们只需要写上@porperty就不用写getter/setter方法的声明 2.编译器只要看到@property,就知道我们要生成某一个属性的getter/setter方法的声明 @propertyde格式 @property数据类型变量名 property增强 从Xcode4.4以后,对@property进行了增强, 以后只要利用一

OC学习篇之[email&#160;protected]和@synthesize的使用

在之前一片文章我们介绍了OC中的内存管理:http://blog.csdn.net/jiangwei0910410003/article/details/41924683,今天我们来介绍两个关键字的使用:@property和@synthesize 一.@property关键字 这个关键字是OC中能够快速的定义一个属性的方式,而且他可以设置一些值,就可以达到一定的效果,比如引用计数的问题 下面来看一下他的使用方法: // // Person.h // 25_Property // // Creat

OC开发系列-成员变量的作用域

成员变量的作用域 OC中成员变量有四种作用域,同时每一种作用域对应着响应的关键字. * @private:自能在当前类的实现@implementation中访问 * @protected: 可以在当前类以及子类的实现@implementation中直接访问 默认 * @public: 任何地方都可以直接访问 * @package: 同一个"体系结构"框架可以访问.介于@private和@public之间 在@implementation实现中声明的成员变量默认是私有的. #import

黑马程序员 [email&#160;protected]和@synthesize

———Java培训.Android培训.iOS培训..Net培训.期待与您交流! ——— 1.@property 和@synthesize 的作用 (1) 通过@property可以自动生成属性的set,get方法的声明部分 生成的是set,get方法是哪个属性的,@property后面的名称就是属性去掉下划线后的部分 例如: - (void)setName: (NSString *)name; - (NSString *)name; 这两行代码可以用 @property (NSString *

objective-c系列[email&#160;protected]&amp;点语法

//解释 property后边的圆括号中的修饰词的含义: //          nonatomic  非线程安全  非原子操作  特点是: 操作变量的效率高 //          atomic     线程安全    原子操作   特点是: 操作变量的效率低 // //          retain     强引用实例变量, 即 setter方法中会有: //                                  -(void)setXXX:(xxx)arg //       

O-C相关-[email&#160;protected]关键字简介与使用

基本概念:在O-C中,创建完类之后还需要给一个类添加属性和方法,之前说过的set和get方法比较繁琐,因此引入了@property 这个编译器指令.@property 是一个编译器指令.所谓的编译器指令, 即告诉编译器如何处理内容, 要做什么.@property 告诉编译器声明读写器( getter 方法与 setter 方法) 1.在今天的 Xcode 中, @property 可以同时生成实例变量, 方法的声明以及方法的实现. 2, 重写 getter 方法与 setter 方法 虽然 @p

黑马程序员--Objective-C之[email&#160;protected]和@synthesize关键字

property是Objective-C的关键词,与@synthesize配对使用,用来让编译好器自动生成与数据成员同名的方法声明.@synthesize则是用来生成对应声明方法的实现. 一.@property关键字 1.property的语法格式: @property (参数1,参数2)类型名字: 这里的参数,主要有以下三种: (1)setter/getter方法(assign/retain/copy) (2)读写属性(readwrite/readonly) (3)atomicity(nona

MVC学习系列[email&#160;protected]辅助方法和用户自定义HTML方法

在HTML Helper,帮助类的帮助下,我们可以动态的创建HTML控件.HTML帮助类是在视图中,用来呈现HTML内容的.HTML帮助类是一个方法,它返回的是string类型的值. HTML帮助类,分成三个类型: Inline HTML helpers[内联的HTML帮助类,例如@Html.Label等] Built-in HTML helpers[也就是嵌套的HTML帮助类,即@helper辅助方法] Custom HTML helpers[自定义的HTML帮助类] 在这里,我们学习第二种,

Spring4.0系列[email&#160;protected]

这篇文章介绍Spring 4的@Conditional注解.在Spring的早期版本你可以通过以下方法来处理条件问题: 3.1之前的版本,使用Spring Expression Language(SPEL). 3.1版本有个新特性叫profile,用来解决条件问题. 1.Spring Expression Language(SPEL) SPEL有一个三元运算符(if-then-else)可以在配置文件中当作条件语句,如下: <bean id="flag"> <cons