Name: your name Organization id and bundle id: reverse domain of your name Language: Objective-C Uncheck ‘use core data’ and ‘include UI tests’ Check ‘Create a Git Repository’ Creating a new Xcode project
from command-line tools” - Nicolas Bouilleaud The run loop allows your app to wait for the user to touch the screen before responding. The run loop ‘listens’ for this touch event.
that circles a city block over and over waiting to pick you up. Or like a Pneumatic tube at a bank drive-through waiting for you to put a message in the tube so it can wisk it away.
each thread. There are six types of events that will cause a run loop to deliver a message. Besides touch events, they can be timers or messages from other apps. The important thing to remember is that the main thread (good old main()) starts an event loop at app launch that ‘listens’ for touch/shake/rotate/tap/etc. events.
the properties are the things the object has. Some find it easier to think of methods as verbs and properties as nouns. Methods and properties are declared publicly in interface files (.h extension) and privately in implementation files (.m extension). Frameworks will only expose header files so that you only get the info that you need without worrying about implementation (or being able to breach copyright).
cannot get an object’s data unless that object exposes its data. When you’re a junior developer, your project manager may create just the interface file and have you fill out the implementation details.
the root class. NSObject -> UIResponder -> AppDelegate -> UIWindow -> UIViewController -> UIView -> UILabel Everything descends from NSObject. All objects are related to NSObject.
-> UIView -> UILabel These last 3 are what you’ll be working with most of the time. You’ll also spend some time with AppDelegate. UIResponder and UIWindow, not so much.
that methods with the same name but different owners can do different things. A Car object and a House object both have a numberOfDoors public property but the runtime doesn’t get confused because of polymorphism
like isKindOfClass, isMemberOfClass, respondsToSelector, etc. These methods reveal meta info about the object - different from most methods that reveal and manipulate program data or properties.
that acts on behalf of, or in coordination with, another object when that object encounters an event in a program.” The delegate pattern so important and popular in Apple land that we’ll be using it and referring back to it throughout the course.
inside of a function has a retain count of 1 until that function returns. Objects that are ‘owned’ by other objects have a retain count of 1. The more ‘owners’ an object has, the higher its retain count.
- compiler declaration that our class has an encapsulated value. nonatomic - allocating this property is thread safe - concurrent processing can be done. strong - increments this pointer’s retain count by one . readonly - this datatype can only be accessed via a setter that is implemented by you. nullable - indicates that the pointer can be nil. Contrast this with null_unspecified, nonnull, and null_resettable. <NSString *> - indicates that the elements in the array are of type NSString and are also pointers
any project you’ll see. Only projects that deal with multi-threaded environments should use ‘atomic’ storage. Atomic code is treated as a critical section of code and is guaranteed to complete before any other thread gets access to the data inside, because of this safety feature, it is slower to allocate atomic properties.
help in understanding OOP) Standard editor - shows one file at a time Assistant editor - defaults to show the header and implementation files Version editor - shows changes since the last commit