@@ -73,9 +73,19 @@ final class SMBShareManager: ObservableObject {
7373 }
7474
7575 private func loadShares( ) {
76- if let data = UserDefaults . standard. data ( forKey: saveKey) ,
77- let savedShares = try ? JSONDecoder ( ) . decode ( [ SMBShare ] . self, from: data) {
78- shares = savedShares
76+ if let data = UserDefaults . standard. data ( forKey: saveKey) {
77+ do {
78+ let savedShares = try JSONDecoder ( ) . decode ( [ SMBShare ] . self, from: data)
79+ shares = savedShares
80+ logInfo ( " Successfully loaded \( savedShares. count) shares from UserDefaults " )
81+ } catch {
82+ logError ( " Failed to decode shares from UserDefaults: \( error) " )
83+ // Continue with empty shares array rather than crashing
84+ shares = [ ]
85+ }
86+ } else {
87+ logInfo ( " No saved shares found in UserDefaults " )
88+ shares = [ ]
7989 }
8090 checkConnectionStatus ( )
8191 }
@@ -89,9 +99,19 @@ final class SMBShareManager: ObservableObject {
8999 }
90100
91101 private func loadReconnectionLogs( ) {
92- if let data = UserDefaults . standard. data ( forKey: reconnectionLogsKey) ,
93- let savedLogs = try ? JSONDecoder ( ) . decode ( [ ReconnectionLog ] . self, from: data) {
94- reconnectionLogs = savedLogs
102+ if let data = UserDefaults . standard. data ( forKey: reconnectionLogsKey) {
103+ do {
104+ let savedLogs = try JSONDecoder ( ) . decode ( [ ReconnectionLog ] . self, from: data)
105+ reconnectionLogs = savedLogs
106+ logInfo ( " Successfully loaded \( savedLogs. count) reconnection logs from UserDefaults " )
107+ } catch {
108+ logError ( " Failed to decode reconnection logs from UserDefaults: \( error) " )
109+ // Continue with empty logs array rather than crashing
110+ reconnectionLogs = [ ]
111+ }
112+ } else {
113+ logInfo ( " No saved reconnection logs found in UserDefaults " )
114+ reconnectionLogs = [ ]
95115 }
96116 }
97117
@@ -100,17 +120,25 @@ final class SMBShareManager: ObservableObject {
100120 }
101121
102122 private func saveShares( ) {
103- if let encoded = try ? JSONEncoder ( ) . encode ( shares) {
123+ do {
124+ let encoded = try JSONEncoder ( ) . encode ( shares)
104125 UserDefaults . standard. set ( encoded, forKey: saveKey)
126+ logInfo ( " Successfully saved \( shares. count) shares to UserDefaults " )
127+ } catch {
128+ logError ( " Failed to encode shares for UserDefaults: \( error) " )
105129 }
106130 }
107131
108132 private func saveReconnectionLogs( ) {
109133 // Only keep the last 100 logs to prevent excessive storage use
110134 let logsToSave = reconnectionLogs. count > 100 ? Array ( reconnectionLogs. suffix ( 100 ) ) : reconnectionLogs
111135
112- if let encoded = try ? JSONEncoder ( ) . encode ( logsToSave) {
136+ do {
137+ let encoded = try JSONEncoder ( ) . encode ( logsToSave)
113138 UserDefaults . standard. set ( encoded, forKey: reconnectionLogsKey)
139+ logInfo ( " Successfully saved \( logsToSave. count) reconnection logs to UserDefaults " )
140+ } catch {
141+ logError ( " Failed to encode reconnection logs for UserDefaults: \( error) " )
114142 }
115143 }
116144
0 commit comments