我正在提取一些语言句子(使用不同的语言)并在TableView中显示它们(每行最多5行),当用户点击任何行时,我将用户导航到新屏幕并在那里显示全文。 / p>
我遇到的问题是,转换字符在设备上正确显示需要花费太多时间。
我编写了以下代码来转换每行的json文本:
NSString *msgDesc = [myContentsArray objectAtIndex:indexPath.row];
char const *cStr = [msgDesc cStringUsingEncoding:NSISOLatin1StringEncoding];
msgDesc = [NSString stringWithCString: cStr encoding:NSUTF8StringEncoding];
感谢您的帮助。
此致
Reno Jones
答案 0 :(得分:2)
由于转换时间过长,您应该将其从tableView:cellForRowAtIndexPath:
方法移出到从数据源中提取数据的代码,在那里进行转换,然后将其存储起来以备将来使用。
将NSMutableArray *myContentsArrayConverted
添加到您的班级,然后将所有内容转换为该版本,并在每次必须显示字符串时使用tableView:cellForRowAtIndexPath:
代替执行转化:
for (int i = 0 ; i != myContentsArray.count ; i++) {
NSString *msgDesc = [myContentsArray objectAtIndex:i];
char const *cStr = [msgDesc cStringUsingEncoding:NSISOLatin1StringEncoding];
[myContentsArrayConverted addObject:[NSString stringWithCString: cStr encoding:NSUTF8StringEncoding]];
}
现在你可以用更快的速度替换慢速代码
NSString *msgDesc = [myContentsArrayConverted objectAtIndex:indexPath.row];