Files
agila-learning-examples/en/objectivec-practice-20261101/lesson-2/lesson.html
T

18 lines
1.8 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!doctype html><html lang="en"><meta charset="utf-8"><title>A language feature worth understanding</title><h1>A language feature worth understanding</h1><p>15-minute session: read for 3 minutes, trace for 3, experiment for 7, and complete the check for 2. Spend longer whenever you need.</p><p>Use the language note below to explain this example’s state changes. Identify what is copied, what is shared, what can fail, and what is released. Only some of those questions apply to this particular program: say which ones. Make one deliberate change, predict the effect, and compare it with the actual result. A familiar-looking operator in another language may obey a different rule.</p><p>Square brackets send a message to a receiver: <code>[plan completed]</code>. <code>@interface</code> declares methods and <code>@implementation</code> defines them. These GNUstep exercises use explicit memory management, not Apple ARC.</p><pre><code class="language-objectivec">#import &lt;Foundation/Foundation.h&gt;
#include &lt;stdio.h&gt;
#include &lt;assert.h&gt;
@interface StudyPlan : NSObject
- (int)completed;
@end
@implementation StudyPlan
- (int)completed { return 3; }
@end
int main(void) {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
StudyPlan *plan = [[StudyPlan alloc] init];
printf(&quot;%d\n&quot;, [plan completed]);
[plan release];
[pool drain];
return 0;
}
</code></pre><p><strong>Expected result:</strong> <code>3</code></p><h3>Practice and evidence</h3><p>Keep three notes: your prediction, the actual result, and why they match or differ. The completion check grades understanding; the practice task builds skill.</p><p><a href="https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/Introduction/Introduction.html">Language reference</a></p></html>