2016-11-16 4 views
2

У меня есть следующий класс с частной структурой для строк, которую я хотел бы использовать для форматированных строк позже. Тем не менее, код выходит из строя во время выполнения.Строка форматирования с% @ in Swift

Почему это? Это потому, что он определяется как static let?

Ниже раздели код:

class LGNotificationHandler { 
    private struct Strings { 
     static let SentImagesENG = "Sent %@ images to the event" 
     static let SentImagesTUR = "Etkinliğe %@ görsel gönderdi" 
    } 

    func buildNotificationString(imageCount: Int) -> String { 
     if imageCount == 1 { 
     . 
     . 
     . 

     } else { 
      // below line is giving error at run time 
      notificationENG = String(format: Strings.SentImagesENG, imageCount) 
      notificationTUR = String(format: Strings.SentImagesTUR, imageCount) 
     } 
    } 
} 
+0

Какая линия вызывает сбой? Каково сообщение об ошибке при сбое? – rmaddy

+0

строка, начинающаяся с 'notificationENG =', дает ошибку. Я упоминаю это в комментарии в конце строки. Я поставил его выше линии для лучшей видимости. Ошибка, которую я получаю, это Thread 20: EXC_BAD_ACCESS (code = 1, address = 0x2) – oyalhi

ответ

7

Вы пренебрегли предоставить какие-либо подробности о катастрофе, но одной очевидной проблемой является использование формата %@ спецификатора с Int. Вы должны использовать %d с Int.

+0

Фактически, '% @' предназначен для объектов, а не только для текста. Вы можете найти информацию обо всех спецификаторах формата в документации. Посмотрите на документы для 'NSString stringWithFormat:' для ссылки. – rmaddy

+1

На самом деле, вот ссылка: https://developer.apple.com/library/prerelease/content/documentation/CoreFoundation/Conceptual/CFStrings/formatSpecifiers.html#//apple_ref/doc/uid/TP40004265 – rmaddy

6

Вам нужно заменить % @ с % г. ImageCount - значение Int. поэтому используйте % d вместо % @.

Формат спецификатора:

%d - int Value 
%f - float value 
%ld - long value 
%@ - string value and for many more. 

Для видеть все Формат спецификаторы см Яблоко Doc Format Specifiers

Смежные вопросы