Có một số vấn đề với ...
trong Mục tiêuC.Mục tiêu-C đi qua ... không có danh sách đối số được kết thúc
Tôi về cơ bản là gói một phương thức và muốn chấp nhận danh sách chấm dứt nil
và chuyển trực tiếp danh sách đó vào phương pháp tôi đang gói.
Đây là những gì tôi có nhưng gây ra sự cố EXC_BAD_ACCESS
. Kiểm tra việc vars địa phương, nó xuất hiện khi otherButtonTitles
chỉ đơn giản là một NSString
khi nó được thông qua với otherButtonTitles:@"Foo", nil]
+ (void)showWithTitle:(NSString *)title
message:(NSString *)message
delegate:(id)delegate
cancelButtonTitle:(NSString *)cancelButtonTitle
otherButtonTitles:(NSString *)otherButtonTitles, ...
{
UIAlertView *alert = [[[UIAlertView alloc] initWithTitle:title
message:message
delegate:delegate
cancelButtonTitle:cancelButtonTitle
otherButtonTitles:otherButtonTitles] autorelease];
[alert show];
}
Làm thế nào để đơn giản siphon từ lý luận đến để tranh luận đi, bảo tồn chính xác cùng nil
danh sách chấm dứt?
Đối tượng đầu tiên trong danh sách phương thức variadic không phải là một phần của chính va_list, đó là lý do tại sao bạn thấy các phụ đềButton khác là một NSString. Tức là, va_list chỉ bao gồm các đối tượng trong phần "...". – Don
Vì mục tiêu-C là một siêu của C, cf. http://stackoverflow.com/questions/150543/forward-an-invocation-of-a-variadic-function-in-c. – Don