The article explores the roles of IBAction, IBOutlet, and IBOutletCollection in Objective-C development for Cocoa and Cocoa Touch, highlighting their evolution from necessary Interface Builder directives to vestigial yet culturally significant markers.
Development
MKGeodesicPolyline
MKGeodesicPolyline, added in iOS 7, draws the true shortest path between points on the Earth’s curved surface. On a flat map this appears as a gentle arc instead of a straight line.
Development
MKTileOverlay, MKMapSnapshotter & MKDirections
iOS 7 quietly brought three powerful new MapKit tools that fixed many old complaints about Apple Maps. Together these solved the biggest developer gripes: ugly base maps, no static map images, and no routing. Even today they remain some of the most generous (and under-used) mapping APIs on iOS.
Development
NSRange
NSRange is a Foundation struct for a contiguous interval of integers, with location (start) and length. It helps avoid off-by-one errors compared to start/end pairs.
Development
Multipeer Connectivity
Multipeer Connectivity (introduced in iOS 7) lets nearby iPhones, iPads, and Macs talk directly to each other using Wi-Fi, peer-to-peer Wi-Fi, or Bluetooth. No internet, no server, no central service required.
Development
NSNotification & NSNotificationCenter
NSNotificationCenter acts as a central hub. Any part of an app can send notices or listen for changes from others. Observers sign up for certain events and get a callback when they happen.
Development
NSError
NSError is Cocoa's way to handle errors without exceptions. It tells about failures with a code, domain, and userInfo dictionary.
Development
Key-Value Observing
Key-Value Observing (KVO) has an ugly, wordy API, but it is one of Cocoa’s most powerful features.
Development
NSHashTable & NSMapTable
NSHashTable acts as a general version of NSSet. It is mutable, holds weak references, can copy items on input, and handles arbitrary pointers using pointer identity for equality and hashing.
Development
NSPredicate
NSPredicate is a Foundation class that defines logical conditions to fetch or filter data. Its syntax mixes SQL WHERE clauses with regex for expressive queries on collections.
Development
NSExpression
NSExpression is a class in Cocoa that simplifies complex data tasks. It evaluates mathematical expressions, such as 4 + 5 - 2**3, which gives 1.
Development
NSEnumerator / NSFastEnumeration
Enumeration makes computation powerful by applying logic to collections.
Apple stopped letting apps use the unique device identifier, called UDID, from iOS 5 onwards. Apple blocked new apps using it after May 2013.
Development
NSCoding / NSKeyedArchiver
Apple gives options like Core Data or NSKeyedArchiver with NSKeyedUnarchiver. These turn objects into data and back again.
Development
MKLocalSearch
MKLocalSearch lets your app search for places (restaurants, shops, etc.) using normal language, all powered by Apple’s own data.
Development
NSSecureCoding
NSSecureCoding is a protocol from iOS 6 / OS X Mountain Lion. It adds the class method supportsSecureCoding.
Development
NSAssertionHandler
In Objective-C, Foundation has macros like NSAssert for methods and NSCAssert for functions. They also have versions for parameters: NSParameterAssert and NSCParameterAssert.
Development
NSURLCache
NSURLCache is the built-in, automatic HTTP(S) cache used by NSURLConnection, NSURLSession (default/ephemeral configs), and WKWebView.
Development
NSValue
NSValue is the lightweight way to put any C scalar or struct (int, float, CGPoint, CGRect, NSRange, etc.) into an object so it can live in NSArray, NSDictionary, NSSet, etc.
Development
NSLocalizedString
NSLocalizedString is a macro in Foundation that gives a localised version of a string. It takes a key to find the string and a comment to help translators.
Development
KVC Collection Operators
The article discusses Key-Value Coding (KVC) Collection Operators in Objective-C, which provide a concise, Ruby-like syntax for performing aggregate operations on collections using valueForKeyPath:.
Development
NSOrderedSet
NSOrderedSet is not a subclass of NSSet due to problems with Objective-C's single inheritance and the mutable/immutable class pairs in Foundation's class clusters.
Development
NS_ENUM & NS_OPTIONS
NS_ENUM and NS_OPTIONS are the modern, Apple-approved way to declare enums and bit-masks.
Development
NSURLProtocol
NSURLProtocol is the most powerful (and least-known) piece of Apple’s URL Loading System.
Development
NSLinguisticTagger
NSLinguisticTagger offers powerful tools to process natural language. It breaks strings into tokens, finds parts of speech and stems, pulls out names of people, places, and groups, and spots languages and scripts.