Objective-C方法参数列表转发

时间:2019-02-01 15:58:15

标签: objective-c args

我定义了一种Objective-C方法,期望使用任意一组参数

- (void)logString:(NSString *)format, ... {
    __block va_list argList;
    va_start (argList, format);
    NSString *formattedString = [[NSString alloc] initWithFormat:format arguments:argList];
    va_end(argList);
    NSLog(@"[ProCheck] %@", formattedString);
}

如果我直接调用此方法,则一切正常。 现在,我需要从采用相同参数集的方法中调用此方法:

- (void)doSomethingAndLogString:(NSString *)format, ... {
    <my code doing something>
    __block va_list argList;
    va_start (argList, format);
    [self logString:format, argsList];
    va_end(argList);
}

但是会导致运行时异常EXC_BAD_ACCESS。

我认为对象保留周期可能不对,有任何线索吗?

1 个答案:

答案 0 :(得分:0)

Afaik,您不能只是简单地前进。建议添加一个附加方法,该方法将<form id="new-item"> <div id="form-wrapper"> <div class="form-item"> <label for="name" class="primary">Name</label> <input type="text" id="name" required /> </div> <div class="form-item"> <label for="type" class="primary">Type</label> <input type="text" id="type" required /> </div> <div class="form-item"> <label for="flavour" class="primary">What did you taste?</label><br> <input type="checkbox" id="flavourProfile" value="boozy" name="boozy" checked> <label for="boozy">Booze</label> <input type="checkbox" id="flavourProfile" value="malty" name="malty"> <label for="malty">Malt</label> </div> </div> <input type="submit" value="save" /> </form> <h1>You've consumed...</h1> <div id="drunk-whiskies"></div> <ul></ul> 作为参数,如下所示:

va_list