Заменить вхождения NSString - iPhone

Я использую здесь анонимный тип, потому что иначе вы получите исключение NotSupportedException: объект или сложный тип «ProjectName.File» не может быть сконструирован в запросе LINQ to Entities.

var file = context.Files
        .Where(f => f.Id == idFile)
        .FirstOrDefault() // You need to exeucte the query if you want to reuse the type
        .Select(f => new {
            f.Id, f.MimeType, f.Size, f.FileName, f.DataType,
            f.DateModification, f.FileId
        }).FirstOrDefault();

А также неплохая практика де-нормализации таблицы в дальнейшем, то есть одна с метаданными и одна с полезной нагрузкой, чтобы избежать проецирования. Проецирование будет работать, единственная проблема - отредактировать любое время, когда новый столбец будет добавлен в таблицу.

33
задан Jonathan Leffler 4 March 2013 в 00:02
поделиться

2 ответа

Обратная косая черта - это escape-символ , поэтому, если вы хотите указать фактический символ обратной косой черты в строковом литерале, вам нужно использовать две обратные косые черты.

NSString *new = [old stringByReplacingOccurrencesOfString: @"\\u0153" withString:@"oe"];
80
ответ дан 27 November 2019 в 16:17
поделиться

NSString является неизменяемым, поэтому функция генерирует новую строку, которую необходимо сохранить:

NSString *new = [old stringByReplacingOccurrencesOfString:@"\u0153" withString:@"oe"];
7
ответ дан 27 November 2019 в 16:17
поделиться