遍匈 / Objective-C /

Block旗鷹翠議聞喘

宸匯准僥楼仟議囂隈?block旗鷹翠。万頁壓iOS4.0才Mac OS X10.6參朔議井云嶄嘉耶紗議?頁斤C囂冱議制婢。

酒汽議尖盾block旗鷹翠議恬喘祥才C囂冱議痕方議恬喘窃貌?祥頁繍嬬校糞孖蝶嶽蒙協孔嬬議匯乂旗鷹淫骨軟栖?藻竃駅勣議俊笥?祥頁歌方??工翌順距喘。

岑祇block旗鷹翠議孔嬬朔?僥楼匯和block議囂隈号夸。
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
void (^helloWorld)(void);
 helloWorld=^(void){
 NSLog(@"Hello World!");
 };
 helloWorld();
 return 0;
}
塰佩潤惚?Hello World!

辛參心欺?貧円議箭徨宥狛聞喘block旗鷹翠糞孖阻“Hello World”弌殻會。蛍盾匯和block旗鷹翠?心心欺久頁奕担糞孖議。

及4佩旗鷹?頁block議蕗苧?及匯倖void頁旗鷹翠議卦指峙窃侏?(^helloWorld)?“^”頁block旗鷹翠議炎崗?涙糞縞吭吶。helloWorld頁block旗鷹翠議兆各?駅倬勣喘弌凄催制軟栖。及屈倖void頁旗鷹翠議歌方?泌惚俶勣嗤歌方?囂隈頁??int?……?賜?int i?……?脅辛參?泌惚音俶勣歌方?辛參寡喘???賜?void?徽頁音嬬銭凄催脅音亟。

6-8佩旗鷹?頁block旗鷹翠議糞孖。遍枠壓斤旗鷹翠糞孖議扮昨?“^”頁駅倬贋壓議??void?嶄俶勣亟議頁輝旗鷹翠議歌方。嗤歌方扮?壓宸戦駅倬亟貧醤悶議耽倖歌方兆?泌惚短嗤歌方?辛參亟撹: ?void?賜??賜孤巌福待脅辛參。朔円寄凄催嶄議旗鷹燕幣斤helloWorld旗鷹翠議醤悶糞孖旗鷹。

?戻幣?旗鷹翠議蕗苧才糞孖辛參亟壓匯軟?

旗鷹翠議距喘才C囂冱議痕方距喘屢揖。宥狛?“旗鷹翠兆?歌方?”議圭塀。

壓聞喘旗鷹翠議扮昨?斤噐畠蕉延楚?壓翠坪頁頼畠辛荷恬議。
徽頁斤噐蕉何延楚栖傍?壓翠坪峪嬬聞喘音嬬厚個。

泌惚編夕壓翠坪厚個蕉何延楚議峙?殻會氏烏危?盾畳議圭宛頁壓蕗苧蕉何延楚扮耶紗__block購囚忖?廣吭頁曾倖“_”??
幹秀匯倖垢殻?壓main.m猟周嶄?
#import <Foundation/Foundation.h>
int number=10;
int main(int argc, const char * argv[]) {
 __block int i=10;
 void(^block)()=^{
 NSLog(@"The i is :%d",i);
 NSLog(@"The number is :%d",number);
 i++;
 number++;
 };
 block();
 NSLog(@"The i is :%d",i);
 NSLog(@"The number is :%d",number);
 return 0;
}
塰佩潤惚?The i is :10
The number is :10
The i is :11
The number is :11

(斤噐Block旗鷹翠議聞喘?万匆辛參才C囂冱嶄議痕方匯劔?亟壓main痕方議翌中?徽頁駅倬恆儉“枠蕗苧?朔聞喘”議圻夸)

旗鷹翠議醤悶聞喘

宥狛貧中議僥楼?哘乎児云貧辛參聞喘旗鷹翠阻。壓糞縞蝕窟狛殻嶄?旗鷹翠議聞喘脅竃孖壓椎乂仇圭椿?

1、厘断壓聞喘Foundation崇尺嶄議蝶乂圭隈扮?辛嬬氏心欺旗鷹翠?宸乂旗鷹翠恬葎圭隈議歌方。箭泌?斤NSArray窃議方怏序佩電會辛參聞喘旗鷹翠電會?
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
 NSArray * array=[NSArray arrayWithObjects:@"4",@"1",@"2",@"3",@"5", nil];
 array= [array sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {
 int a1=[obj1 intValue];
 int a2=[obj2 intValue];
 return a1>=a2?-1:1;
 }];
 NSLog(@"%@",array);
 return 0;
}
塰佩潤惚?(
5,
4,
3,
2,
1
)
宥狛貧円斤方怏斤嵆序佩電會議箭徨?低氏窟孖block旗鷹翠恬葎歌方聞喘扮?輝聞喘宸倖電會圭隈扮?旗鷹翠嶄議延楚賜斤嵆頁嗤峙議。

宥狛繍卦指議方峙序佩曳熟?隼朔壅卦指公宸倖圭隈匯倖潤惚?祥頼撹阻斤方怏議電會。屁倖狛殻喘欺阻block旗鷹翠議指距。

和中宥狛匯倖箭徨斤宸倖狛殻序佩匯和庁亭?
1、遍枠幹秀匯倖垢殻?箭泌?Demo?
2、幹秀匯倖Person窃?

壓Person.h嶄:
#import <Foundation/Foundation.h>
typedef void(^myBlock)(NSString * name,int age);
@interface Person : NSObject
-(void)exercise:(myBlock)block;
@end
凪嶄?typedef扮OC嶄議購囚忖?燕幣嶷凋兆?恬喘頁宥狛聞喘typedef購囚忖?酒晒熟葎鹸墫議窃侏蕗苧?壓朔円聞喘旗鷹翠議扮昨?岷俊喘旗鷹翠議兆忖旗燕祥辛參阻。

壓Person.h嶄?遍枠蕗苧阻匯倖畠蕉議block旗鷹翠?旺繍岻恬葎圭隈議歌方。
壓Person.m猟周嶄?
#import "Person.h"
@implementation Person
-(void)exercise:(myBlock)block{
 NSString * theName=@"ZhangSan";
 int age=10;
 block(theName,age);
}
@end
壓宸倖猟周嶄?斤.h蕗苧議圭隈序佩阻糞孖?壓糞孖狛殻嶄?厘断距喘阻block旗鷹翠。岷欺孖壓厘断珊短嗤斤block旗鷹翠恂糞孖。

和中栖心匯和main.m猟周嶄議旗鷹?
#import <Foundation/Foundation.h>
#import "Person.h"
int main(int argc, const char * argv[]) {
 Person * person=[[Person alloc] init];
 [person exercise:^(NSString *name, int age) {
 NSLog(@"%@,%d",name,age);
 }];
 return 0;
}
壓main.m猟周嶄?厘断心欺?厘断斤block旗鷹翠恂阻糞孖?補竃name峙才age議峙。宥狛公垢殻嬉僅泣?厘断氏心欺宸粁弌殻會議塰佩狛殻?

遍枠?兜兵晒匯倖person斤嵆
?person斤嵆窟僕exercise?嶧連
塰佩person.m猟周嶄議exercise糞孖何蛍議旗鷹
塰佩欺block旗鷹翠扮?塰佩旗鷹翠議糞孖何蛍?匆祥頁main.m猟周嶄議補竃囂鞘
block旗鷹翠議糞孖何蛍塰佩頼朔?殻會写偬塰佩exercise圭隈議糞孖何蛍。
exercise圭隈議糞孖何蛍塰佩頼朔?燕苧?person斤嵆窟僕議嶧連祥頼撹阻
隼朔塰佩return 0潤崩殻會。

宥狛効忸殻會議峇佩乏會?厘断辛參心欺block旗鷹翠恬葎歌方扮議殻會塰佩送殻。屎頁旋喘block旗鷹翠議宸嶽塰佩字崙?厘断辛參旋喘block頼撹勧峙議孔嬬。

block旗鷹翠?糞縞蝕窟狛殻嶄?斤噐徭協吶議旗鷹翠載富喘欺?徽頁壓Foundation崇尺嶄?block旗鷹翠恬葎圭隈歌方議秤趨曳熟謹。

遇拝?埋隼亅咏、宥岑吉脅嗤勧峙議孔嬬?徽頁泌惚低嬬校痩試塰喘block旗鷹翠?曳軟念曾嶽圭塀園殻繍延誼厚酒汽。

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