2010-11-28 7 views
0

J'ai ce problème:Recherche de problème NSString

J'utilise UIWebView pour rendre une chaîne. L'utilisateur sélectionne une plage de texte que je peux obtenir par ce code:

NSString *selection = [pageView stringByEvaluatingJavaScriptFromString:@"window.getSelection().toString();"]; 

J'utilise ce code pour obtenir la gamme de la sélection dans le contenu original:

NSRange range = [Content rangeOfString:selection]; 

Le problème est la sélection n'est pas trouvé dans certains cas, donc j'obtiens range.length = 0,

Quand je compare les deux chaînes dans TextEdit, je les ai trouvées identiques, mais même textEdit ne trouve pas la chaîne de sélection dans le contenu.

Tout conseil pour résoudre ce problème est apprécié.

ce que quelqu'un peut aider à remarquer ce qui est en place:

Langue actuelle: auto; actuellement objectif-c 2010-11-29 01: 19: 35.614 Asseera [729: 207] sélectionner la plage est فندب النبى صلى الله عليه وسلم أمته إلى التسمى بأسمائهم 2010-11-29 01: 19: 58.073 Asseera [729: 207 ] subContent est-ولما كان الأنبياء سادات بنى آدم, وأخلاقهم أشرف الأخلاق, وأعمالهم أصح الأعمال, كانت أسماؤهم أشرف الأسماء, فندب النبى صلى الله عليه وسلم أمته إلى التسمى بأسمائهم, كما في سنن أبى داود والنسائى عنه: ((تسموا بأسماء الأنبياء)) ولو لم يكن في ذلك من المصالح إلا أن الاسم يذكر بمسماه, ويقتضى التعلق بمعناه, لكفي به مصلحة مع ما في ذلك من حفظ أسما الأنبياء وذكرها, وأن لا تنسى, وأن تذكر أسماؤهم بأوصافهم وأحوالهم. 2010-11-29 01: 21: 05.922 Asseera [729: 207] plage de sélection est {2147483647, 0}

Répondre

0

Avez-vous essayé d'obtenir une valeur constante? Comme le titre du document au lieu de quelque chose qui dépend de l'utilisateur. Peut-être qu'il y a un problème avec getSelection()?

+0

J'ai obtenu l'innerText de la div qui contient le texte, cette fois l'a pris à Windows et comparer les deux chaînes à l'intérieur de l'éditeur NotepPad et Visual Studio 2008, étonnamment les deux chaînes se correspondent maintenant. Je suis confus quant à la façon dont Objective C compare les chaînes. J'ai oublié de dire que le contenu est en langue arabe. – Ashraf

+0

Je suppose que cela a à voir avec l'encodage. Obj-C ne sait peut-être pas que c'est du code UTF8 ou UTF16. – BastiBen