So the plan is to complete this app today - the Quizzler! Like I've said before, this template could easily be adapted. Once it's done, I could use it for F1 questions, GoT...anything! So being able to understand each step, as well as the object oriented programming being clarified, there have been lots of positives. Here we go!
Init the First Question
letfirstQuestion = allQuestions.list[0]
I figured out that this must be the 0 index with that format. Makes sense!
uestionLabel.text = firstQuestion.questionText
Having the class makes a huge difference to the simplicity of the code!
OK, the tag system makes a lot fo sense. Grouping together several buttons and putting in the tags of 1, 2 etc. That would have been useful for the Yahtzee buttons for each option to click. Anyway, that's something to play around with another time.
func checkAnswer() {
let correctAnswer = allQuestions.list[0].answer
if correctAnswer == pickedAnswer {
print("You got it!")
} else {
print("Wrong!")
}
}
How to Progress Through the Question Bank
var questionNumber: Int = 0
So this is a great way of keeping track of something, whether it's the level one is on, the score, or in this case - the question number!
Using += 1 - that is the best way of adding on one! Not ++. Swift removed the ++ for some reason. But never mind!
OK - challenge was to try to figure out what to do when the questions were up - I failed. Tried a few things but they did not work.
Using the Xcode Debug Console
Right, so using the debug console, using the debug area is important here. You can print the question number here, to establish the value. This is 13. OK so I was actually close, just some of the order of things. Encouraging!
How to Implement UIAlertController
Here is how it looks:
Whenever you see the word 'in', you should also use the word 'self'. Not for for-in loops though!
This is linked to CLOSURES. We'll come back to this apparently.
let alert = UIAlertController(title: "Complete!", message: "You have finished all of the questions. Do you want to play again?", preferredStyle: .alert)
This is REALLY useful stuff! It seems of huge importance to have these action buttons in the code - especially for restarting etc. The code is complex so I'm not going to worry about memorising the syntax!
I'm still going for more complex solutions rather than simpler ones - repeating myself. Remember DRY!
High Level Overview
This was all fine.
Track Progress and Score
I haven't typed anything here but lots of logic and problem solving - very rewarding!
UPDATING score in the code so it resets to 0 every time - already done my friend!
Incorporating Objective C code into Swift
OK, so this is to get pop ups to show if they got an answer right or wrong!
We're going to use a code library - we can access this for free basically.
HUD - Head Up Display
So I've copied over the files - no problem. I've included the 'bridging' option too.
I've also created an alteration - randomised messages for the correct/wrong answers! I posted this in the questions as am proud of it!
Well that is all for now. Lots learned but gotta go!
It's been a while but for god reason! I've got a promotion at work, which means I've really got my future set. However, I am not going to abandon Swift. My work over the past 20-ish months has been rewarding and to let all of that go would be a shame. True, had I not got the promotion, I would probably be gravitating towards Swift more with an aim to transition to a career in the future. Anyway, that COULD still happen but it does make me want to rethink my goals a bit. We're also on an early holiday, so plenty of time to code and do a reflective entry of where I am and where I want to be. That will happen soon! For now, let's get on with the auto layout course! Start Time - 9:42 Intrinsic Content Size So this is the size that will fit EXACTLY into a a view's content. Content Hugging and Compression Resistance - these are rules that show the importance of contents not shrinking or resizing, bigger than the intrinsic size. 4 priority values to set. Vert...
No time to waste! Only got a short amount of time now so going to get a few minutes or so in! Start Time - 20:14 Conditionals If statement for 'love calculator' example. So a simple example for this. The idea will be that conditionals are used to show that the print statement will do it differently for whatever the number is. With updated Swift, I would use the Int.random(0...100). Easy fix that would be. Also no UIInt32 needed but just an Int. So with the if statements, it would be a STRING being returned. Linked to the whole choose your own adventure - if/else for each choice. BMI Challenge No need to do this - easy enough to be honest. Just skimming through. BODMAS principles... So something I picked up on before is not needing the greater than AND less than value for the middle line (for the else if bmi > 18.5) A better solution, which Angela is already explaining before I could say it is returning a string instead of a Double. So the...
Managing to keep some momentum going! Have around 45 minutes or so now. The next chapter is the Quizzler app, which I used again recently to make my F1Quiz. So this really is a skim through. Couple of key things I want to go over are the pop ups and the progress bar. And the general MVC principle again. OK let's go! Start Time - 10:35 Status Bar Style - light. This is for the battery and anything else on the very top bar. You can also hide that as well. So you need to go to info.plist file. Add a new one and add view controller-based status bar; type boolean; answer NO. Info about the .plist So this is the CLASS for a question/answer format. Much better than just using a dictionary - I tried using that before. Object Oriented Programming (OOP) Analogy of restaurant - I've seen this before but it's a really good one. I liked Sandra's pizza one too. So classes - blue print for an object. Ok difference with method/function - method is inside a class...
Comments
Post a Comment