Сравните NSString, используя «сравнить», как в Java сравнить - PullRequest
0 голосов
/ 13 сентября 2011

Я пытаюсь вытащить версию моего приложения из моей БД, которая является 1.2.0, и сравнить ее с текущей версией установленных приложений. которая может быть неопределенной или ниже (например, 1.1.0 и т. д.).

Я знаю, что могу использовать isEqualTo на NSString, но это просто сравнение для равенства.

Я хотел бы знать, как использовать сравнение для результата, аналогичного методу Java Java CompareTo, который возвращает целое отрицательное, 0, положительное.

Я посмотрел NSComparisonResult, но не могу понять, как использовать доступ к результатам.

Кроме того, обратите внимание: можно ли считать, что версия, предшествующая обновлению, ниже, чем версия обновления в приложениях Apple? Возможно ли, чтобы приложение было понижено, чтобы при запуске базы данных приложение могло принадлежать более новой версии приложения?

Спасибо.

Ответы [ 3 ]

1 голос
/ 13 сентября 2011

Вы можете использовать NSString :: compare для сравнения двух NSStrings.

Пример:

NSString *str1 = @"Hello";
NSString *str2 = @"World!";

NSComparisonResult retValue = [ str1 compare:str2 ];

Обратите внимание, что retValue имеет результат того,две строки равны или нет.Определение перечисления NSComparisonResult -

enum {
   NSOrderedAscending = -1,
   NSOrderedSame,
   NSOrderedDescending
};
typedef NSInteger NSComparisonResult;

Если retValue == NSOrderedSame, то две строки равны.т.е. возвращаемое значение равно 0 .

1 голос
/ 13 сентября 2011

1) NSComparisonResult NSOrderedAscending = -1, NSOrderedSame, NSOrderedDescending

Это означает, что если первое значение меньше второго, вы получите -1, если значения равны 0, иначе 1.

2) Понижение рейтинга невозможно для AppStore.Если версии не совпадают, можно предположить, что AppStore более новый.

1 голос
/ 13 сентября 2011

Как насчет использования сравнить ?Результирующий NSComparisonResult является просто перечислением значений -1, 0, 1.

...