gpt4 book ai didi

ios - 附加 NSAttributedStrings 返回错误

转载 作者:行者123 更新时间:2023-11-28 20:18:04 24 4
gpt4 key购买 nike

我遵循了上一个问题答案的建议,但在运行以下代码时收到错误,该代码应该将 5 个字符串的数组连接成一个更大的字符串。

NSArray *myStrings = [text componentsSeparatedByString:@"//"];
NSMutableAttributedString *result = [[NSMutableAttributedString alloc] init];
NSAttributedString *delimiter = [[NSAttributedString alloc] initWithString:@","];

NSLog(@"The Content of myStrings is %@", myStrings);

for (NSAttributedString *str in myStrings)
{
if (result.length)
{
[result appendAttributedString:delimiter];
}

[result appendAttributedString:str];
}

NSLog 的打印输出返回:

2013-06-11 20:49:55.012 strings[11789:11303] The Content of myStrings is (
"Hello ",
"my name is ",
"Giovanni ",
"and im pretty crap ",
"at ios development"

所以我知道我有一个包含 5 个字符串的数组。然而,在第一次运行代码时,虽然它绕过了“if”循环(正如它应该的那样),但它在“for”循环的最后一行抛出错误:

由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[__NSCFString 字符串]:无法识别的选择器发送到实例 0x716ec60”

我不明白为什么 - str 和 result 都被定义为相同类型的字符串,所以不明白为什么一个不能附加到另一个。有任何线索吗?

最佳答案

您的数组似乎包含 NSString 对象。 NSAttributedString 不是 NSString 的子类,反之亦然。它们都继承自 NSObject。

在追加之前,尝试使用 initWithString 方法创建 NSAttributedString 的实例,并将 str 作为参数传递。

NSAttributedString *attributedString = [NSAttributedString initWithString:str];
[result appendAttributedString:attributedString];

for 循环也需要更新:

for (NSString *str in myStrings) {
}

关于ios - 附加 NSAttributedStrings 返回错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17052625/

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