2016-09-22 6 views
0

После я преобразовал свой проект Swift 3.0, я нахожу ошибку в журнале с переменной:Ошибка после преобразования Swift 3,0

var arrayOfHours = stringArray.map {String(describing: $0!.characters.prefix(2))} 

Ошибка:

code of error: "Optional(Swift.String.CharacterView(_core: Swift._StringCore(_baseAddress: Optional(0x000060800024ee70), _countAndFlags: 2, _owner: Optional(Swift._HeapBufferStorage<Swift._StringBufferIVars, 
Swift.UInt16>))))" 

где моя ошибка происходя?

Update:

var stringArray in console: [Optional("1226"), Optional("1249"), Optional("1312"), Optional("1336"), Optional("1359"), Optional("1422"), Optional("1446"), Optional("1509"), Optional("1532"), Optional("1549"), Optional("1607"), Optional("1624"), Optional("1642"), Optional("1659"), Optional("1717"), Optional("1734"), Optional("1752"), Optional("1809"), Optional("1827"), Optional("1844"), Optional("1902"), Optional("1919"), Optional("1954"), Optional("2032"), Optional("2107"), Optional("2142"), Optional("2217"), Optional("2252"), Optional("2327"), Optional("2402"), Optional("2437"), Optional("2512")] 
+4

Как определить 'stringArray', в котором оно содержится? Зачем принудительно разворачиваться в '$ 0!'? Каким будет ожидаемый результат? - Как всегда, маленький * самодостаточный * пример был бы чрезвычайно полезен. –

+1

Использование 'String (description:)' означает, что вы «заставляете» что-то быть строкой, которая не является строкой, вместо правильной ее конвертации. –

ответ

1
var stringArray: [String?] = ["1226", "1249"] 
print(stringArray) // [Optional("1226"), Optional("1249")] 

var arrayOfHours = stringArray.map { String($0!.characters.prefix(2)) } 
print(arrayOfHours) // ["12", "12"] 
+0

Большое спасибо! Вы решили, что моя проблема и приложение работают! Большой! –

+0

Ohh сделал преобразование беспорядок вверх по вашей stringArray форме факультативной строки ?? – M090009

0

Ну его дает вам Optional отливки Струнный потому String() будет возвращать ноль, если он нашел что-то другое, а не String, так что вы должны сделать, это разворачивать что, как и в:

stringArray.map {String(describing: $0!.characters.prefix(2))!} 

Просто добавили силу разворачивать ! к String() результате

+0

ОК, я сделал это и вижу ошибку: не могу заставить разворачивать значение необязательного типа 'String' –

+0

ok можете ли вы сказать мне, что такое тип 'stringArray' – M090009

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

  • Нет связанных вопросов^_^