自拍无码在线|亚洲AvAv国产|手机久草视频在线|国产三区四区视频|日夲強伦一级入口|欧美香蕉视频一区二区|亚洲涩图日本五月|最新免费成人网址|超碰91官网在线观看|国产口爆在线观看

IOS 開發(fā)學(xué)習(xí)總結(jié)objectivec面向?qū)ο笾椒?-電腦資料

電腦資料 時(shí)間:2019-01-01 我要投稿
【www.zwdianwu.cn - 電腦資料】

    objective-c 的方法不能獨(dú)立存在,所有的方法都必須定義在類里,

<code class="hljs" r="">#import<foundation foundation.h="">@interface VarArgs : NSObject// 定義形參個(gè)數(shù)可變的方法- (void)test:(NSString *) name, ...;@end</foundation></code>

    實(shí)現(xiàn)文件:VarArgs.m

<code class="hljs" bjectivec="">#import VarArgs.h@implementation VarArgs- (void)test:(NSString *) name, ...{    // 使用va_list定義一個(gè)argList指針變量,該指針變量指向可變參數(shù)列表    va_list argList;    // 如果為第一個(gè)name參數(shù)存在,才需要處理后面的參數(shù)    if (name)    {        // 由于name參數(shù)并不在可變參數(shù)列表中,因此先處理name參數(shù)        NSLog(@%@ , name);         // 讓argList指向第一個(gè)可變參數(shù)列表的第一個(gè)參數(shù),開始提取可變參數(shù)列表的參數(shù)        va_start(argList, name);         // va_arg用于提取argList指針當(dāng)前指向的參數(shù),并將指針移動(dòng)到指向下一個(gè)參數(shù)        // arg變量用于保存當(dāng)前獲取的參數(shù),如果該參數(shù)不為nil,進(jìn)入循環(huán)體        NSString* arg = va_arg(argList, id);        while (arg)        {            // 打印出每一個(gè)參數(shù).            NSLog(@%@,arg);            // 再次提取下一個(gè)參數(shù),并將指針移動(dòng)到指向下一個(gè)參數(shù)            arg = va_arg(argList, id);        }        // 釋放argList指針,結(jié)束提取        va_end(argList);    }}@endint main(int argc , char * argv[]){    @autoreleasepool{        VarArgs* va = [[VarArgs alloc] init];        [va test:@瘋狂iOS講義             , @瘋狂Android講義, @瘋狂Ajax講義 , nil];    }}</code>

    本質(zhì)上說,這個(gè)可變參數(shù)也是個(gè)類似數(shù)組的結(jié)構(gòu),

電腦資料

http://www.zwdianwu.cn)。最后要指出的是,個(gè)數(shù)可變的形參只能處于形參列表的最后。即:一個(gè)方法中最多只能有一個(gè)長度可變的形參。

最新文章