// NS_REQUIRES_NIL_TERMINATION, 用於編譯時非nil結尾的檢查 - (void)mutableArgumentsFunction:(NSString *)arg1, ... NS_REQUIRES_NIL_TERMINATION { // 定義一個指向可選參數列表的指針 va_list args; // 獲取第一個可選參數的地址,此時參數列表指針指向函數參數列表中的第一個可選參數 va_start(args, arg1); if(arg1) { // 遍歷參數列表中的參數,並使參數列表指針指向參數列表中的下一個參數 NSString *nextArg; while((nextArg = va_arg(args, NSString *))) { NSLog(@"ARG :%@", nextArg); } } // 結束可變參數的獲取(清空參數列表) va_end(args); }
特別注意:
1.可變參數只能是所有參數中的最後一個
2.NS_REQUIRES_NIL_TERMINATION, 用於編譯時非nil結尾的檢查
應用場景:
1.重寫UIAlertView時可以參考一下這個方法
2.重寫NSLog