2016-09-20 6 views
1

Я использую Spotify IOS SDK, и я храню сеанс с использованием NSKeyedUnarchiverНе удалось бросить значение типа «SPTSession» (0x110afab98) к «SPTSession» (0x10f17f638)

Однако следующий код вызывает ошибку (некоторые код опущен только для наглядности):

sptSession = NSKeyedUnarchiver.unarchiveObjectWithData(sessionData as! NSData) 
let auth = SPTAuth.defaultInstance() 
auth.session = sptSession as! SPTSession 

последняя строка кода бросает ошибку Could not cast value of type 'SPTSession' (0x110afab98) to 'SPTSession' (0x10f17f638). я прочитал эту ошибку как-то существуют два различных типа SPTSession с, но я не уверен, почему и как решить проблема.

ответ

1

ответ, кажется, связано с этим SO сообщение:

Swift only way to prevent NSKeyedUnarchiver.decodeObject crash?

Я добавил вопрос к репо GH для Spotify в IOS SDK (https://github.com/spotify/ios-sdk/issues/759), и отправил этот временный обходной путь в качестве комментария на вопрос:

на данный момент, я нашел обходное решение - я могу просто написать NSKeyedArchiver.setClassName("SPTSession", for: SPTSession.self), прежде чем архивировать сессию, и напишу NSKeyedUnarchiver.setClass(SPTSession.self, forClassName: "SPTSession") перед распаковкой.

Хотя это исправляет сбой, я оставлю проблему открытой, так как я не уверен, можно ли внести изменения в базовую библиотеку, чтобы исправить это.