Может кто-нибудь сказать мне способ хэширования строки NSS к целому числу, и этот хэш должен всегда быть идентичным соединению с строкой NSS.Для строки NSSt значение хеша int не должно меняться ни при каких условиях.
Я думал использовать [хэш NSString], но этот пост ( Каждый раз вычисляется ли [хэш NSString]? ) сказал, что [хэш NSString] изменится, что означает, что одна идентичная строка NSString может иметь другое значение хэша.
Это не то, что я хочу.
Ниже поясняется, для чего мне нужна такая хеш-функция NSString to Integer.
Я использую CoreData для хранения всех своих данных.Каждый раз, когда я выбираю, я выбираю все элементы, чей "CategoryUrl" соответствует определенному.«CategoryUrl» довольно длинный, как обычный длинный http-URL, но с дополнительными символами внутри, чтобы показать больше метаинформации.
В любом случае, для каждой такой выборки она довольно медленная, потому что я думаю, что CoreData придется сравнивать свойство "CategoryUrl" каждого элемента с тем, которое нужно найти.И сравнение NSString в CoreData идет медленно, медленнее, чем Integer, верно?
Я думаю о том, чтобы хешировать «CategoryUrl» для каждого элемента перед его сохранением, и сохранить значение хеш-функции в новом свойстве для каждого элемента.Поэтому для каждой выборки я просто позволяю CoreData сравнивать хеш-значение «CategoryUrl» вместо значения NSString.Это может повысить скорость.
Я провел несколько экспериментов с фальшивым хеш-значением, оно значительно повысило.Но я все еще не уверен, потому что я еще не нашел приличной реальной хэш-функции NSString to Integer.
Кто-нибудь может сказать мне, думаю ли я в правильном направлении для производительности CoreData и что является лучшимспособ хеширования NSString в целое число?
Спасибо