- 不要等到明天新荤,明天太遙遠(yuǎn)按咒,今天就行動(dòng)励七。
須讀:看完該文章你能做什么奔缠?
synthesize基本使用
學(xué)習(xí)前:你必須會(huì)什么?(在這里我已經(jīng)默認(rèn)你具備C語(yǔ)言的基礎(chǔ)了)
什么是方法的實(shí)現(xiàn),setter、getter方法實(shí)現(xiàn)
一两波、本章筆記
一.
synthesize 是一個(gè)編譯器指令,它可以簡(jiǎn)化 我們getter/setter方法的實(shí)現(xiàn)
什么是實(shí)現(xiàn):
在聲明后面寫(xiě)上大括號(hào) 就代表著實(shí)現(xiàn)
1.@synthesize 后面告訴編譯器, 需要實(shí)現(xiàn)那個(gè) @property 生成的聲明
2.告訴 @synthesize , 需要傳入的值 賦值給誰(shuí) 和返回誰(shuí)的值給 調(diào)用者
二.
如果有兩個(gè)
{
int _age;
int _number;
}
@synthesize age = _number;
那么到時(shí)候 訪(fǎng)問(wèn)的_age 是空的, 訪(fǎng)問(wèn) _number才有值
三.
如果在@synthesize 后面沒(méi)有告訴系統(tǒng) 將傳入的值賦值給誰(shuí), 系統(tǒng)默認(rèn)會(huì)賦值給 和 @synthesize后面寫(xiě)的名稱(chēng)相同的成員變量 ---- @synthesize age;最后等于 @synthesize age = age;
二腰奋、code
main.m
######main.m
#pragma mark 03-synthesize基本使用
#pragma mark - 代碼
#import <Foundation/Foundation.h>
#pragma mark 類(lèi)
#import "Person.h"
#pragma mark - main函數(shù)
int main(int argc, const char * argv[])
{
Person *p = [Person new];
[p setAge:22];
// NSLog(@"age = %i, p->age = %i",[p age],p->_age);
// NSLog(@"_age = %i, _number = %i",p->_age,p->_number); // 0 , 22
NSLog(@"_age = %i, age = %i",p->_age,p->age);
return 0;
}
Person
>>>.h
#import <Foundation/Foundation.h>
@interface Person : NSObject
{
@public
int _age;
int age;
int _number;
}
@property int age;
@end
>>>.m
#import "Person.h"
@implementation Person
#pragma mark 1.synthesize 是什么 有什么用
/*
synthesize 是一個(gè)編譯器指令,它可以簡(jiǎn)化 我們getter/setter方法的實(shí)現(xiàn)
什么是實(shí)現(xiàn):
在聲明后面寫(xiě)上大括號(hào) 就代表著實(shí)現(xiàn)
1.@synthesize 后面告訴編譯器, 需要實(shí)現(xiàn)那個(gè) @property 生成的聲明
2.告訴 @synthesize , 需要傳入的值 賦值給誰(shuí) 和返回誰(shuí)的值給 調(diào)用者
- (void)setAge:(int)age
{
_number = age;
}
- (int)age
{
return _number;
}
*/
#pragma mark 測(cè)試
// 如果在@synthesize 后面沒(méi)有告訴系統(tǒng) 將傳入的值賦值給誰(shuí), 系統(tǒng)默認(rèn)會(huì)賦值給 和 @synthesize后面寫(xiě)的名稱(chēng)相同的成員變量 ---- @synthesize age;最后等于 @synthesize age = age;
//@synthesize age = _age;
//@synthesize age = _number;
@synthesize age;
#pragma mark 2.@synthesize 等同于什么
/*
// @synthesize age = _age; 等同于??
- (void)setAge:(int)age
{
_age = age;
}
- (int)age
{
return _age;
}
*/
@end