我在我的類中的兩個方法叫TestClient
字符串格式化,可變參數和EXEC_BAD_ACCESS
-(void)log:(NSString *)logMessage, ...
{
va_list ap;
va_start(ap, logMessage);
[self log:logMessage withParameters:ap];
va_end(ap);
}
-(void)log:(NSString *)logMessage withParameters:(va_list)valist
{
NSString *formattedString = [[NSString alloc] initWithFormat:logMessage arguments:valist]; //Crashes here
[self callMethod:@"log" withParams:formattedString, nil]; //Calls my method.
}
這裏是我的單元測試:
-(void)testWtfCondition
{
int test = 1;
NSString *test2 = @"wtf";
[proxy log:@"This is a test: %@ %@",test, test2];
}
我單位在與EXEC_BAD_ACCESS NSString的formattedString線測試崩潰。我在做字符串格式或可變參數錯誤嗎?是因爲我試圖用int來做一個格式嗎?
Derp derp。我覺得這是這樣的。我發誓我試過%i,但它仍然墜毀。這看起來像是在工作。只要StackOverflow允許,我會立即接受。 – danieljimenez