2025-04-23

– (void)setGradientColor:(UIColor *)beginColor transitionColor:(UIColor *)transitionColor,…NS_REQUIRES_NIL_TERMINATION ;

 

// NS_REQUIRES_NIL_TERMINATION, 用於編譯時非nil結尾的檢查

– (void)setGradientColor:(UIColor *)beginColor transitionColor:(UIColor *)transitionColor, …{

[self.gradientColors addObject:(id)beginColor.CGColor];

// 定義一個指向可選參數列表的指針

va_list args;

 

// 獲取第一個可選參數的地址,此時參數列表指針指向函數參數列表中的第一個可選參數

va_start(args, transitionColor);

 

if(transitionColor)

{

[self.gradientColors addObject:(id)transitionColor.CGColor];

 

// 遍歷參數列表中的參數,並使參數列表指針指向參數列表中的下一個參數

UIColor *nextArg;

while((nextArg = va_arg(args, UIColor *)))

{

[self.gradientColors addObject:(id)nextArg.CGColor];

}

}

// 結束可變參數的獲取(清空參數列表)

va_end(args);

}

 

[drawCircleView setGradientColor:[UIColor purpleColor] transitionColor:[UIColor redColor],[UIColor blueColor], nil];

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *