Exercise 2: What Actually Happens Without NSLocationWhenInUseUsageDescription — Possible Solution ========================================================================================================= If NSLocationWhenInUseUsageDescription is genuinely missing from Info.plist and requestWhenInUseAuthorization() is called anyway, the real, actual result is not a graceful failure, a thrown error, or a denied-permission callback that the app's own code could catch and handle - per the chapter's own explicit warning, it's a real, immediate app CRASH at the exact moment the request is made. This happens because Apple's own real operating system needs a specific, real, human-readable reason string to actually display inside the system permission prompt shown to the user - "This app would like to access your location because ___." With no usage- description key present anywhere in Info.plist, the system has no real string it could possibly show in that prompt, and rather than silently skip the request, showing a blank prompt, or granting default access, iOS enforces the requirement by terminating the app outright the moment the request is attempted. This is a deliberate real platform decision, not a bug or an edge case the developer is expected to code around - it exists specifically to guarantee that a user is NEVER shown a location (or camera, microphone, contacts, etc.) permission prompt without some real, specific explanation of why the request is being made, protecting user trust and privacy transparency at the platform level rather than leaving it up to individual developers' own discretion. ANSWER: Calling requestWhenInUseAuthorization() with no matching NSLocationWhenInUseUsageDescription key in Info.plist causes a real, immediate app crash, not a graceful error or a denied-permission result - because iOS has no real reason string it could display in the system permission prompt, and enforces the requirement by terminating the app rather than allowing a permission request with no explanation to reach the user at all. WHY THIS WORKS AS AN ANSWER ------------------------------ This correctly describes the real, specific crash behavior (not a softer failure mode) and explains the real underlying platform reason for it - the missing string the system prompt itself needs to display.