Saving Data in iOS · Saving on Device | Ray Wenderlich

This is a companion discussion topic for the original entry at

This course need to be re done
Difficult to follow
Level jumped quickly
Not suitable for beginners

1 Like

@lifesound Thank you for your feedback. Could you please let me know why do you find it difficult to understand when you get a chance?

I agree and can tell you why.

So far, this saving data series begins fine, with little tidbits of details, introducing you to one little thing at a time and letting you play around with it. I already know about bits and bytes, so that part was not overwhelming, but I can see how it might have moved too quickly for some.

Then, after a reasonable pace on how files work, they open the firehose of “add these 20 things to make all this other stuff work” with little explanation of what’s actually going on other than a bunch of gibberish that makes no sense. It feels hurried, like they just want to get through it without actually teaching.

1 Like

I’m thinking that this video in particular needs to be addressed because:

  1. This is the only brand-new video since the last update.
  2. We didn’t get this feedback with the last update.
  3. These two comments are attached to this video in particular.

If you could quantify "20 things to make all this other stuff work” and “bunch of gibberish that makes no sense”, that would be very helpful! As always, we’ll certainly make an attempt to improve our delivery of information in future updates, incorporating feedback, but the closer we can pinpoint exactly where potential confusion will arise, the better we’ll know where to focus more time.

But before the next update comes out, feel free to ask any questions you have right here.

Hi all,
I do agree that this material is a bit difficult to understand at first. I think FileManager is not that intuitive for beginning programmers and this video also uses do/catch blocks which I had not seen before (I’m viewing this in the Udemy beginner’s course).

That said, I think it’s a great introduction to FileManager and persisting data on device. I was able to learn quite a bit from this video and the Saving Data course and apply it by modifying the Checklist app from Beginning Table Views to persist data!

1 Like

@jbullardmv Thank you for your feedback - much appreciated! Really glad to hear that it helped you!

I am using the xcode 10.2.1 and swift 5 and get errors with the last two lines on the image swift file

let images = try Image /Call can throw, but errors cannot be thrown out of a global variable initializer/ {UIImage(data: $0.pngData)} /Expressions are not allowed at the top level/

I see that the last two lines were just a for demo now .

Hi Jessy,

In previous videos, I sometimes had to rewatch difficult parts, but everything made sense in the end. Concepts in the first part of Saving Data in iOS are well explained too. However, I found the second part, JSON & Property Lists, daunting. I was able to find the following examples:

In “10. JSON”, we are told to create an enum called DecodingError which conforms to the Error protocol without being properly explained to what the Error protocol actually is.

Next, Bundle.main is used without imho sufficient explanation regarding what Bundle is and what the difference between Bundle and the document directory (as introduced earlier in this course) is.

This may be something I have missed in previous videos, but I am not quite sure what the throws keyword does.

extension Array where Element == Image is new syntax too, as far as I know.

In “11. Saving on Device”, I am not sure what kind of type FileManager.SearchPathDirectory is.

try? was well explained by explicitly stating what it does.

I hope I was able to provide good feedback. I see these videos as a minor setback in an otherwise very helpful course. Most importantly, I appreciate that you are addressing these issues.


1 Like

Thanks Krystof! That’s all helpful.

As far as error handling goes, we know we need to move basic information about it out of “advanced” material. But for now, this course may be helpful to you: