OC中合成存取方法

首先需要声明一下实例变量和属性的区别。

实例变量:

/// 接口文件

#import <Foundation/Foundation.h>

- (int) a; // 实例变量

- (int) b;

- (void) fun1;

...

@end

/// 实现文件

#import "XXX.h"

@implementation XXX

{

int a;
// 实例变量

int b;

}

- (void) fun1

{

...

}

...

@end

属性:

@interface XXX:NSObject

@property int a, b; // @property指令

- (void) a;

...

@end

需要注意的地方:

1、如果声明了属性,那么就不需要在implementation中再次声明。

2、@synthesize

经常在实现文件中出现@synthsize a,b;这样就实现了两个个取值方法a,b;两个设置方法seta,setb;

但其实这行也可以不用,编译器也会为你自动生成setter和getter,不过编译器生成的属性名会在第一个字符自动加一个下划线。如:_a,_b;

产生自动存取方法,让编译器完成这件事是非常值得的。

时间: 2025-01-11 08:39:33

OC中合成存取方法的相关文章

黑马程序员--Objective-C之--OC中的内存管理

对于面向对象的变成语言,程序需要不断地创建对象. 初始,创建的所有程序通常都有指针指向它,程序可能需要访问这些对象的实例变量或调用这些对象的方法,随着程序的不断执行,程序再次创建了一些新的对象, 而那些老的对象已经不会再被调用,也不再有指针指向他们,如果程序没有回收他们占用的内存,就会出现内存泄露. 如果程序一直泄露内存,那么可用内存就会越来越少,直到没有足够的内存,程序將会崩溃.目前,主要有两种管理内存的技术,一是引用计数,二是垃圾回收. iOS平台目前只支持引用计数,Mac平台支持垃圾回收.

【《Objective-C基础教程 》笔记ch05】(六)OC中的复合机制Composition

 1.复合通过包含作为实例变量的的对象指针实现的.        @interface Unicycle : NSObject        {           Pedal*pedal;           Tire*tire;         }//Pedal和tire通过复合的方式组成了Unicycle 2.存取方法--用来读取或者改变某个对象属性的方法. #import <Foundation/Foundation.h> @interface Car : NSObject { Eng

1218.1——OC中的常见关键字及一些基本方法

OC常见的关键字介绍: @ 看到这个关键字,我们就应该想到,这是Object-C对C语言的扩展,例如@interface XXX. @interface 声明类 @implementation 实现类 @protocol 声明协议 @optional 与@protocol配合使用,说明协议中的某个或者某几个方法可以不实现 @required 与@protocol配合使用,说明协议中的某个方法或者某几个方法必须实现 @end 与@interface ,@implementation,@protoc

OC中属性self.a与_a访问的区别

在OC中我们可以通过指令@property定义属性. OC对属性封装了许多方法,同时也会自动实现一些方法,相比实例变量,感觉更加面向对象些. 一般定义属性的方法如下,在Class Test中定义属性int a. @interface Test:NSObject @property int a; -(void) changeAValue:(int) newValue; @end 在类的实例方法中,我们可以用下面两种方式来访问a属性: 1.直接用属性名访问: -(void) changeAValue

OC中的类

OC是一门面向对象的语言,其中自然少不了类.对应C++中的声明和定义,OC的类也分为interface和implementation,并分别以指令 @interface ... @end @implementation ... @end 表述.一般我们会把interface部分放置在.h文件中,而实现部分,则放置在.m文件中. 下面是类Fraction的实例, Fraction.h头文件: #import <Foundation/Foundation.h> @interface Fractio

关于OC中直接打印结构体,点(CGRect,CGSize,CGPoint,UIOffset)等数据类型

关于OC直接打印结构体,点(CGRect,CGSize,CGPoint,UIOffset)等数据类型,我们完全可以把其转换为OC对象来进项打印调试,而不必对结构体中的成员变量进行打印.就好比我们可以使用NSStringFromCGRect(CGRect rect)来直接打印一个结构体,其他打印可以参考以下内容 UIKIT_EXTERN NSString *NSStringFromCGPoint(CGPoint point); UIKIT_EXTERN NSString *NSStringFrom

【学习ios之路:Objective-C】OC中常用的系统排序方法

①.OC中常用排序方法: 1).不可变数组 - (NSArray *)sortedArrayUsingSelector:(SEL)comparator; - (NSArray *)sortedArrayUsingComparator:(NSComparator)cmptr; 2)可变数组 - (void)sortUsingSelector:(SEL)comparator; - (void)sortUsingComparator:(NSComparator)cmptr; 3).字典排序 - (NS

关于void*类型的用法(相当于OC中的id类型)

关于void*类型的用法(相当于OC中的id类型) 1.C++语言在对于void* 类型的使用很特别,因为void* 可以间接引用任何其他数据类型的指针,比如int*.float*甚至抽象数据类型的指针,而且可以从void* 强制转换为任何其他数据类型的指针,所以使用起来有时候会比较危险.如果开始将一个void*的指针间接引用一个float*的指针,然后将这个void*指针强制转化为一个int*类型的指针,编译器不会给出错误甚至警告,但是输出的数据却匪夷所思,如果再强制转换会float*则不会出

智能指针 与 oc中的指针

智能指针 与 oc中的指针 智能指针的原理及实现 当类中有指针成员时,一般有两种方式来管理指针成员:一是采用值型的方式管理,每个类对象都保留一份指针指向的对象的拷贝:另一种更优雅的方式是使用智能指针,从而实现指针指向的对象的共享. 智能指针(smart pointer)的一种通用实现技术是使用引用计数(reference count).智能指针类将一个计数器与类指向的对象相关联,引用计数跟踪该类有多少个对象共享同一指针. 每次创建类的新对象时,初始化指针并将引用计数置为1:当对象作为另一对象的副