Как сгенерировать случайную строку в Objective C на основе значений основных данных

Я разрабатываю одно приложение для iPad, используя раскадровку и основные данные. Для моего приложения мне нужно сгенерировать одну случайную строку, например «M000142140502343524», которой еще нет в поле «данные» таблицы «Таблица А» при нажатии кнопки.


person user3564078    schedule 02.05.2014    source источник
comment
Насколько похожа эта строка? Например, может ли это быть строка UUID?   -  person Droppy    schedule 02.05.2014
comment
проверьте это -›stackoverflow.com /вопросы/2633801/   -  person Mohit    schedule 02.05.2014
comment
M000142140502343524 это одна строка уже в поле данных таблицы. Как и эта строка, в поле данных уже сохранено более 30000 строк. Мне нужно генерировать случайную строку при каждом нажатии кнопки. Но условия таковы, что это что-то похожи на строки в поле данных, но не совсем похожи, потому что поле данных уникально.   -  person user3564078    schedule 02.05.2014
comment
Вы можете использовать временную метку, которая будет уникальной в каждый момент времени.   -  person Sunny Shah    schedule 02.05.2014


Ответы (3)


Это сгенерирует случайный ключ

   NSTimeInterval  today = [[NSDate date] timeIntervalSince1970];
    NSString *intervalString = [NSString stringWithFormat:@"%f", today];
    NSDate *date = [NSDate dateWithTimeIntervalSince1970:[intervalString doubleValue]];

    NSDateFormatter *formatter=[[NSDateFormatter alloc]init];
    [formatter setDateFormat:@"yyyyMMddhhmm"];
    NSString *strdate=[formatter stringFromDate:date];
person Sunny Shah    schedule 02.05.2014
comment
M000 + случайная строка, здесь мне нужна случайная строка, основанная на сегодня...ггггммддччммсс....например, 20140502034855....2014 год...05 месяц...02 день....03 час....48 минут ...55 секунд(текущее время..) - person user3564078; 02.05.2014
comment
Спасибо, Санни Шах. Это работает. Я отмечу ваш ответ как правильный. - person user3564078; 02.05.2014

Обычный способ создания уникальной строки:

NSString *UUID = [[NSUUID UUID] UUIDString];

or

NSString *identifier = [[NSProcessInfo processInfo] globallyUniqueString];

Но вы также можете создать такую ​​строку самостоятельно. Например:

+ (NSString *)createRandomName
{
    NSTimeInterval timeStamp = [ [ NSDate date ] timeIntervalSince1970 ];
    NSString *randomName = [ NSString stringWithFormat:@"M%f", timeStamp];
    randomName = [ randomName stringByReplacingOccurrencesOfString:@"." withString:@"" ];
    return randomName;
}
person Avt    schedule 02.05.2014

Вы можете сгенерировать уникальный идентификатор (UUID) следующим образом:

NSString *randomUUIDString = [[NSUUID UUID] UUIDString];

person aslisabanci    schedule 02.05.2014