0

私はいくつかの言語文を (異なる言語で) 引き出して TableView (各行最大 5 行) に表示し、ユーザーが任意の行をタップすると、ユーザーを新しい画面に移動し、そこに全文を表示します。

私が直面している問題は、文字を変換してデバイス上で適切に表示するのに時間がかかりすぎることです。

各行の json テキストを変換する次のコードを作成しました。

NSString *msgDesc = [myContentsArray objectAtIndex:indexPath.row];

char const *cStr = [msgDesc cStringUsingEncoding:NSISOLatin1StringEncoding];

msgDesc = [NSString stringWithCString: cStr encoding:NSUTF8StringEncoding];

助けてくれてありがとう。

よろしく、

レノ・ジョーンズ

4

1 に答える 1

2

変換には時間がかかりすぎるため、tableView:cellForRowAtIndexPath:メソッドから、データ ソースからデータを引き出すコードに移動し、そこで変換を行い、将来の使用のために保存する必要があります。

クラスに追加NSMutableArray *myContentsArrayConvertedし、すべてをクラスに変換しtableView:cellForRowAtIndexPath:、文字列を表示する必要があるたびに変換を実行する代わりにin を使用します。

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];
于 2013-03-05T21:12:05.700 に答える