为什么这个变量不是归属字符串?

时间:2013-06-10 09:10:38

标签: objective-c nsattributedstring

我在代码中有这三行,用于从.txt文件中获取文本并将其分配给NSAttributedString

NSString *path = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"txt"];
NSString *text = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:NULL];

NSAttributedString *attString = [[NSAttributedString alloc] initWithString:text];

使用调试器我知道正确找到了path,并且正在将文本添加到变量text,但它没有转换为NSAttributedString - 调试器只是说“变量不是NSAttributedString”

我在第三行中遗漏了什么以允许将NSString转换为NSSAttributedString? (我不想要任何属性,但我假设您可以将字符串加载到属性字符串中?)

3 个答案:

答案 0 :(得分:1)

问题可能来自其他地方,我想,只是尝试过:

NSString *path = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"txt"];
NSString *text = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:NULL];

NSAttributedString *attString = [[NSAttributedString alloc] initWithString:text];

NSLog(@"Text : %@\nNSAS : %@", text, attString);

这是输出:

2013-06-10 11:17:04.444 TestsSO[5554:c07] Text : hello, world !
NSAS : hello, world !{
}

您确定text填写正确吗?

答案 1 :(得分:0)

尝试

NSAttributedString *attString = [[NSAttributedString alloc] initWithString:text attributes:nil];

希望它能奏效。

答案 2 :(得分:0)

尝试

NSMutableAttributedString *attri_str=[[NSMutableAttributedString alloc]initWithString:text];


  [attri_str addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"HelveticaNeue-Bold" size:15] range:NSMakeRange(0, 15)]; // Begin and Last letter

        [attri_str addAttribute:NSForegroundColorAttributeName value:[UIColor colorWithRed:0/255.0 green:143/255.0 blue:255/255.0 alpha:0.75] range:NSMakeRange(0,25)];

我希望对你有帮助。