Есть ли метод "stringByReplacingCharactersInRange" для NSString в Monotouch? - PullRequest
8 голосов
/ 02 ноября 2011

В документации Apple для NSString есть метод stringByReplacingCharactersInRange , однако я не могу найти этот метод в Monotouch.

Отсутствует ли реализация этого метода в Monotouch - привязке нативного API?

Мне нужен этот метод для реализации некоторой пользовательской логики обработки строк внутри shouldChangeCharactersInRange

Ответы [ 2 ]

8 голосов
/ 02 ноября 2011

Вот код, чтобы сделать то, что вам нужно:

string text = field.Text;
string result;

result = text.Substring (0, range.Location) + replacement + text.Substring (range.Location + range.Length);
4 голосов
/ 02 ноября 2011

Не все привязано для NSString, потому что это в основном будет дублировать методы .NET, доступные в System.String.

Самый простой способ - это работать с .NET (нативной) строкой и создавать NSString из них, если / когда вам нужно взаимодействовать с API, который требует этого.Это дает преимущества, заключающиеся в минимизации количества управляемых / неуправляемых переходов (это требует небольших затрат).

string s = "...";
var ns = new NSString (s);

То же самое происходит, если вы получаете NSString от API, затем преобразуйте его в строкуманипулировать им.

NSString ns = NSSomething.GetIt ();
string s = ns.ToString ();

Если вы обнаружите конкретную привязку, у которой нет аналогичного метода .NET, заполните отчет об ошибке на http://bugzilla.xamarin.com, и мы обязательно включим его в будущие выпускиMonoTouch.Часто может быть дан немедленный обход, чтобы разблокировать вас.

...