遍匈 / Objective-C /

OC嶄議亅咏

亅咏議尖胎尖盾

OC囂冱頁汽写覚謹亅咏議囂冱。壓僥楼写覚議揖扮?珊俶勣僥氏癖輝議聞喘亅咏頼撹蒙協議孔嬬。

亅咏才厘断伏試嶄議根吶寄揖弌呟?箭泌?嗤匯倖頃徨?喇噐定槍載弌?涙隈孚綱徭失?侭參音誼音溜熔麿繁栖孚綱麿議咬奮軟肖。

貫亅咏議叔業蛍裂貧中議箭徨?頃徨俶勣誼欺孚綱?徽頁麿徭失一音阻?峪嬬斑隠跳孚綱麿。侭參頃徨頁亅咏伏撹圭?隠跳頁亅咏糞孖圭。

貫殻業議叔業貧深打?亅咏祥頁蝶窃幹秀?凪麿窃栖逸凪糞孖。

聞喘亅咏俶勣廣吭議泣

1、亅咏短嗤幻窃(亅咏辛參捲貫謹倖(>=0)亅咏?匯違捲貫NSObject亅咏?。

(宸戦議NSObject頁NSObject.h猟周嶄議協吶議匯倖亅咏?旺音頁NSObject宸倖窃?泌惚嗤夘諒?寄社辛參command泣似序秘NSObject宸倖亅咏?乏宴阻盾匯和宸倖亅咏嶄侭淫根議圭隈)

2、亅咏嶄音嬬協吶延楚?奉來??峪嬬協吶圭隈。

亅咏議幹秀

1、幹秀匯倖OC垢殻?箭泌?Demo2?
2、壓緩垢殻嶄耶紗匯倖Children窃?
3、隼朔壅耶紗匯倖Nanny(隠跳)窃?
3、壓Children宸倖窃嶄耶紗匯倖亅咏?旗鷹泌和?
Children.h猟周?
#import <Foundation/Foundation.h>
@protocol ChildrenDelegate <NSObject>//亅咏蕗苧
-(void)eat;
@end
@interface Children : NSObject
@property(nonatomic,weak)id<ChildrenDelegate>delegete;
@end  
2-4佩旗鷹??亅咏議伏撹何蛍?

@protocol頁協吶亅咏議購囚忖?御盆園咎匂?勣蝕兵蕗苧亅咏阻。

ChildrenDelegate頁亅咏議兆忖?号袈凋兆葎?窃兆+Delegate。

<NSObject>頁匯倖亅咏?凪嶄戻工阻載謹圭隈工厘断聞喘?宥狛main.m嶄旗鷹議盾瞥厘断氏心欺捲貫宸倖亅咏議挫侃。?亅咏喘“<>”?

@end御盆園咎匂厘議亅咏蕗苧頼阻。

壓亅咏嶄?嗤叱倖圭隈議俐蔑簡工厘断聞喘?
@required(燕幣參和圭隈駅倬糞孖)
@optional(燕幣參和圭隈辛參音糞孖)

泌惚音聞喘販採購囚忖俐蔑?潮範秤趨和頁@required。

箭泌壓宸倖亅咏嶄?

-(void)eat;

宸倖圭隈短嗤喘購囚忖俐蔑?園咎匂潮範秤趨和?範葎万頁駅倬糞孖議圭隈。

厘断珊辛參?亅咏嶄耶紗揮嗤@required才@optional購囚忖俐蔑議圭隈?
@required
-(void)takeCare;

宸倖圭隈喘@required俐蔑?侭參頁亅咏糞孖圭駅倬糞孖議圭隈。
@optional
-(void)cook;

宸倖圭隈喘@optional俐蔑?燕苧亅咏糞孖圭辛參僉夲頁倦糞孖宸倖亅咏。

及6佩旗鷹??delegate議幹秀

岻念讐狛?亅咏頁俶勣斑凪麿繁栖逸低糞孖議?椎担祥恢伏阻匯倖諒籾?奕担号協宸倖逸低糞孖圭隈議繁頁豊椿?
葎阻盾畳宸倖諒籾?俶勣蕗苧宸担匯倖奉來栖鳩協豊頁旗尖糞孖圭。

@property頁協吶奉來議購囚忖。

nonatomic燕苧宸倖奉來頁掲圻徨來議?紗酔阻塰佩丼楕;weak頁樋哈喘?頁聞喘亅咏扮喘欺議奉來。

id?念中戻欺?辛參燕幣販採方象窃侏?聞喘id 議圻咀頁涙隈鳩協豊氏撹葎宸倖旗尖議糞孖圭。

<ChildrenDelegate>燕苧宸倖奉來圭隈才宸倖亅咏屢購選。

delegete?頁旗尖奉來兆(旗尖奉來兆議凋兆匆頁嗤捻号夸議?匯違凋兆葎delegate?燕苧宸頁匯倖旗尖奉來。珊嗤匯倖圻咀祥頁咀葎Foundation崇尺嶄議旗尖奉來匆頁宸担凋兆議?侭參厘断葎阻斑徭失延誼廨匍?匆勣才廨匍蝕窟繁埀僥楼。泌惚匯倖窃嶄珊俶勣匯倖旗尖?祥凋兆葎dataSource)?匯違匯倖窃恷謹匆祥嗤曾倖亅咏。

宥狛貧中議垢恬?厘断壓Children宸倖猟周嶄?協吶阻匯倖亅咏?旺繍宸倖亅咏才厘断議窃序佩購選(喇噐厘断壓窃嶄蕗苧阻才亅咏屢購選議奉來?侭參聞屁倖窃脅才亅咏恢伏阻購選?泌惚嗤乂夘雌?和中議旗鷹辛嬬氏逸廁欺低)。

亅咏議糞縞哘喘

和中厘断壓nanny宸倖窃嶄糞孖宸倖亅咏?遍枠栖心旗鷹?
Nanny.h猟周嶄議旗鷹:
#import <Foundation/Foundation.h>
#import "Children.h"
@interface Nanny : NSObject<ChildrenDelegate>
@end
旗鷹盾瞥?

<ChildrenDelegate>燕苧宸倖窃捲貫ChildrenDelegate宸倖亅咏(<>嶄珊辛參耶紗謹倖亅咏?嶄寂喘矯催侯蝕。)

泌惚匯倖窃捲貫匯倖亅咏?椎担宸倖窃祥勣糞孖亅咏嶄議圭隈。
Nanny.m猟周嶄議旗鷹:
#import "Nanny.h"
@implementation Nanny
-(void)eat{
 NSLog(@"the nanny is taking care of the child eating something!");
}
@end
亅咏議醤悶哘喘

宥狛念中議僥楼?頼撹阻亅咏蕗苧圭才糞孖圭議旗鷹糞孖?和中僥楼聞喘亅咏栖頼撹匯協孔嬬。

main.m嶄議旗鷹糞孖?
#import <Foundation/Foundation.h>
#import "Children.h"
#import "Nanny.h"
int main(int argc, const char * argv[]) {
 Children * child=[[Children alloc] init];
 Nanny * nanny=[[Nanny alloc] init];
 child.delegete=nanny;
 if ([child.delegete respondsToSelector:@selector(eat)]) {
 [child.delegete eat];
 }
 return 0;
}
補竃潤惚?
the nanny is taking care of the child eating something!

旗鷹讐盾?

遍枠?勣塰喘亅咏?厘断勣哈秘旗尖蕗苧圭才糞孖圭。(葎焚担椿?峪哈秘糞孖圭音佩宅?低氏窟孖?頁辛佩議。嬬宸劔恂?頁咀葎壓Nanny窃嶄哈秘阻Children窃?侭參.m嶄峪俶哈秘Nanny窃祥辛參阻。

岻侭參勣嶷鹸哈秘宸倖窃?頁咀葎宸劔奐膿阻旗鷹議辛響來?遇拝喇噐@import議蒙來(音砿哈秘謹富肝?匯倖窃峪哈秘匯肝)?旺短嗤週詰旗鷹議塰佩丼楕)。

壓5-7佩旗鷹嶄?遍枠蕗苧阻曾倖窃議斤嵆?宸頁葎及7佩恂彈姥?喇噐旗尖蕗苧圭勣鳩協旗尖糞孖圭頁陳倖斤嵆?侭參勣聞喘欺岻念聞喘欺議旗尖奉來。侭參聞喘泣囂隈栖葎旗尖奉來序佩験峙。

葎焚担験峙議頁窃斤嵆椿?宸倖載挫尖盾?遍枠艶繁勣逸低頼撹販暦?遍枠万駅倬頁匯倖糞悶?匆祥頁斤嵆。

8-10佩旗鷹頁勣嶷泣尖盾議?child.delegete凪糞祥頁nanny斤嵆?椎担葎焚担音岷俊聞喘nanny椿?壓酒汽殻會嶄頁辛參議?泌惚壓鹸墫議殻會嶄?聞喘糞孖圭斤嵆議念戻頁低駅倬資誼宸倖斤嵆?吏吏継扮継薦。侭參葎阻閲窒宸嶽秤趨?匯違聞喘貧中宸嶽圭塀?遇拝旗鷹響軟栖掲械賠漣?叟噐尖盾。

respondsToSelector:圭隈?宸倖圭隈頁NSObject亅咏嶄議圭隈?孔嬬頁登僅旗尖糞孖圭頁倦厮将糞孖阻旗尖嶄議蝶倖圭隈。
聞喘宸倖圭隈議挫侃祥頁?泌惚旗尖糞孖圭短嗤糞孖宸倖旗尖圭隈?屁倖垢殻音崛噐雲寸(泌惚音聞喘宸倖圭隈恂登僅?匯稀低距喘阻峪蕗苧短嗤糞孖議圭隈?殻會繍氏竃危。宸匆祥盾瞥阻葎焚担幹秀亅咏議扮昨?潮範崛富乎亅咏勣捲貫NSObject宸倖亅咏阻)。

@selector():廨壇壓距喘圭隈扮喘欺?泌惚低心欺蝶倖圭隈議歌方頁SEL窃侏扮?祥傍苧宸俶勣勧序肇匯倖圭隈?慕亟囂隈葎?@selector(圭隈)?宸戦議圭隈頁酒亟議侘塀?祥頁音?塋床諒鏆菪??

潤栽貧中議盾瞥?悳悶議栖盾瞥宸倖if囂鞘?泌惚旗尖糞孖圭糞孖阻eat宸倖旗尖圭隈?椎担祥峇佩[child.delegete eat]?匆祥頁距喘nanny斤嵆議eat圭隈。

椎担?諒籾祥栖阻? eat圭隈短嗤壓Nanny.h俊笥猟周嶄蕗苧?峪頁壓.m猟周嶄恂阻糞孖。葎焚担翌順嬬距喘椿?

宸才亅咏嗤購狼?匯稀蝶倖窃捲貫阻蝶倖亅咏?椎担乎窃祥俶勣糞孖亅咏嶄号協駅倬糞孖議圭隈。遇宸乂圭隈辛參宥狛?亅咏伏撹圭.delegate 圭隈ħ議圭塀距喘?

亅咏辛參糞孖議孔嬬


苧易亅咏議旗鷹園亟号夸岻朔?珊俶勣阻盾亅咏壓糞縞蝕窟狛殻嶄議恬喘。喇噐亅咏云附壓云猟周嶄蕗苧?遇凪圭隈抜壓凪麿窃猟周嶄糞孖議宸匯蒙來?辛參序佩曾倖窃岻寂議方象勧弓(糞孖議醤悶圭塀祥頁繍方象勧弓公亅咏嶄議圭隈歌方?宥狛圭隈議“呟仇”峇佩?繍方象勧弓狛肇)。

AltStyle によって変換されたページ (->オリジナル) /