gpt4 book ai didi

iphone - ARC 和可变参数导致 BAD_ACCESS

转载 作者:可可西里 更新时间:2023-11-01 05:31:19 27 4
gpt4 key购买 nike

我正在浏览一个可变参数列表,当我到达列表中的最后一个对象时,我总是会收到 BAD_ACCESS 错误。我强烈认为它是 ARC相关问题。

这是我的做法:

-(NSString *)replaceTokensWithStrings:(NSString *)firstKey, ... {

va_list _arguments;
va_start(_arguments, firstKey);

for (NSString *_currentArgument = firstKey; _currentArgument != nil; _currentArgument = va_arg(_arguments, NSString*)) {
NSLog(@"%@", _currentArgument);
}

va_end(_arguments);

return nil;
}

我必须以某种方式告诉编译器保留 va_arg 返回的结果,但我似乎无法弄清楚在哪里以及如何应用此范例。

更新 1: 这是我调用方法的方式:

[@"Hello <firstname> <lastname>" replaceTokensWithStrings:
@"firstname", @"Peter",
@"lastname", "Smith",
nil];

更新 2: 我更新了我的问题并添加了一个错误以揭示我实际上做错了什么。请参阅下面我的回答。

最佳答案

我完全走错了路。问题根本不在于函数,而在于我如何调用该函数(其他参与者不可能知道这一点,因为我没有在我的问题示例中犯错误)。

我更新了我的问题,实际问题是我没有传递 NSString 列表,而是传递了 5 个 NSString,而最后一个是普通的 C 字符串。

最后一个 C 字符串导致了 BAD_ACCESS:

差:

"Smith"

好:

@"Smith"

现在我很尴尬:-)

关于iphone - ARC 和可变参数导致 BAD_ACCESS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11560291/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com