Don’t worry if you have to reference the solutions.
I’m pretty new at this, too, and I’ve struggled from time to time just understanding the challenge and, if I can’t figure out what’s being asked, I have gone to the solution.
In these situations, I print out the solution, and the challenge, and then compare the step(s) I’m struggling with with the relevant part of the solution code.
Once I better understand what is being asked, I put aside the solution and go back to Xcode and then rewrite what I’ve just figured out (often in a slightly different way). That way it sticks in my head. Then I continue with the challenge.
However you do it, it will take time to stick in your head. I’m often referring back to previous lessons to remind myself of what we’ve already covered. I feel that what we’re learning isn’t necessarily as important as learning how to learn.
My past experience has taught me that “figuring things out”, no matter how you figure them out, is at least as important as the code itself. The code is transitory, but learning how to “figure things out” lasts forever.