Finally, I finished this eight-week course. As an iOS developer, naturally I chose iOS track.
Specs:
Add searching function.
Add a button to keep track of which Pokémon have been caught and save the state in UserDefaults.
Create structs with types that match the keys and types returned by the API. Parse the JSON data and display Pokemons’ image and description
Some structs are added to help parse the JSON data. I have done some practices of this skill in Music App, so it didn’t take me much time to finish the parts of displaying pokemon image and description.
To keep track of the state if a pokemon is caught or not, I save their names as keys and a bool value as their values in UserDefaults
. …
Spec:
Write a programme that imports data from a CSV spreadsheet. For each student in the CSV file, insert the student into the
students
table in thestudents.db
database.While the CSV file provided to you has just a
name
column, the database has separate columns forfirst
,middle
, andlast
names. You’ll thus want to first parse each name and separate it into first, middle, and last names. …
To create a Date object with a specific date, let’s say October 10 2020, we can create from DateComponent
or String
.
var dateComps = DateComponents()
dateComps.calendar = Calendar.init(identifier: .gregorian)
dateComps.day = 10
dateComps.month = 10
dateComps.year = 2020let date = dateComps.date
//Oct 10, 2020 at 12:00 AM
The time will automatically set to 12:00 AM if not specified.
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "MMM/dd/yyyy"
let dateStr = "Jan/20/2020"let date = dateFormatter.date(from: dateStr)
// Jan 20, 2020 at 12:00 AM
This part demonstrates how to parse string-based and integer-based values we get back from API to Date objects.
ISO 8601 is a global standard for representing date and time formats. The example shown below is the most common format of ISO 8601. …
I broke down this programme into a few small functions, dealing with the DNA database, the input DNA sequences, and the computation of DNA results respectively.
At the beginning of this programme, it checks the number of command-line arguments first. If the user does not pass 3 arguments on the command line, this programme exits.
If 3 command-line arguments are passed, this programme reads the database by calling function read_db()
. The second command-line argument, supposed to be the file name of a database, is passed to this function. …
Date is a specific point in time, independent of any calendar or time zone.
To create a date object initialised to the current date and time, simply write like this:
let date = Date()
If you run it on Playground, the Date object shown on live view might look a bit different from what it is printed out. That’s because the Date object shown on live view shows the current date and time of your system. When you print it out, it shows the date information in ISO 8601 format UTC time. …
Spec:
Implement functions that spell-check a file after loading a dictionary of words from disk into memory. Use a hash table to keep track of the words in dictionary
One day I just wanted to make a collection view able to be infinitely scrolled both forward and backward, so I started to think about how to make it. Then I was inspired by those infinite rotating ads commonly seen on e-commerce apps.
*
operator, &
operatormalloc()
, free()
\0
valgrind
: check memory leakswap
functionSpec:
Complete functions
grayscale
,sepia
,reflect
, andblur
that apply filters to BMPs.
Functions grayscale
and sepia
simply iterate through each pixel and recalculate its RBG values. Function reflect
swaps the RGB values of each pixel with the pixel on the mirror side of it. These 3 functions are quite easy, so I don’t show them here.
Function blur
is more complicated. It computes the new value for a pixel by taking the average RGB values of the old colour values of all 9 pixels (4 or 6 pixels if the original pixel is on the edge) that form a grid around the original pixel. …
Although Swift is widely used to develop iOS app today and you can even get an iOS developer job without knowing a bit of Objective-C, sometimes it’s still inevitable to face Objective-C, especially at work. You might be assigned the task of maintaining an old project or developing an app based on an old Objective-C project. Either situation could be quite challenging to a Swift programmer who barely knows Objective-C. So, a little knowledge of incorporating Swift into Objective-C might save you some trouble of dealing with it.
The first time you add a Swift file to an Objective-C project, this dialogue box will appear, asking if you would like to create a bridging header. Make sure you click Create Bridging Header, then Xcode will configure everything for you. …
I thought we would be asked to implement sorting and searching methods we learned in week 3 in this week’s assignments, but it turned out the assignments have nothing to do with them😂
Since the problem sets are getting complex as entering week 3, CS50 provides predefined programme structure and breaks down the programme into small functions. All we need to do is to complete the functions that are left empty.
Background:
In a plurality election, every voter gets one vote, and the candidate with the most votes wins.
Spec:
Complete the
vote
function. Validate the input name. If it matches one of the names of candidates, update that candidate’s vote and return true. …
About