@@ -35,31 +35,33 @@ open class AcknowPodDecoder: AcknowDecoder {
3535 */
3636 public func decode( from data: Data ) throws -> AcknowList {
3737 let rootDictionary = try PropertyListSerialization . propertyList ( from: data, format: nil ) as? [ String : AnyObject ]
38- let preferenceSpecifiers = rootDictionary ? [ " PreferenceSpecifiers " ] as? [ AnyObject ]
39- let headerItem = preferenceSpecifiers? . first as? [ String : String ]
40- let footerItem = preferenceSpecifiers? . last as? [ String : String ]
38+ guard let preferenceSpecifiers = rootDictionary ? [ " PreferenceSpecifiers " ] as? [ [ String : String ] ] else {
39+ return AcknowList ( headerText: nil , acknowledgements: [ ] , footerText: nil )
40+ }
41+
42+ let headerItem = preferenceSpecifiers. first
43+ let footerItem = preferenceSpecifiers. last
4144 let headerText = headerItem ? [ " FooterText " ]
4245 let footerText = footerItem ? [ " FooterText " ]
4346
4447 // Remove the header and footer
45- let ackPreferenceSpecifiers = preferenceSpecifiers? . filter { item in
48+ let ackPreferenceSpecifiers = preferenceSpecifiers. filter { item in
4649 guard let headerItem = headerItem,
47- let footerItem = footerItem,
48- let item = item as? [ String : String ] else {
50+ let footerItem = footerItem else {
4951 return false
5052 }
5153
5254 return item != headerItem && item != footerItem
53- } ?? [ ]
55+ }
5456
5557 let acknowledgements : [ Acknow ] = ackPreferenceSpecifiers. compactMap { preferenceSpecifier in
56- guard let title = preferenceSpecifier [ " Title " ] as! String ? ,
57- let text = preferenceSpecifier [ " FooterText " ] as! String ? else {
58+ guard let title = preferenceSpecifier [ " Title " ] ,
59+ let text = preferenceSpecifier [ " FooterText " ] else {
5860 return nil
5961 }
6062
6163 let textWithoutNewlines = AcknowParser . filterOutPrematureLineBreaks ( text: text)
62- return Acknow ( title: title, text: textWithoutNewlines, license: preferenceSpecifier [ " License " ] as? String )
64+ return Acknow ( title: title, text: textWithoutNewlines, license: preferenceSpecifier [ " License " ] )
6365 }
6466
6567 return AcknowList ( headerText: headerText, acknowledgements: acknowledgements, footerText: footerText)
0 commit comments