Uploaded September 2012 | Updated September 2026, 2 weeks ago
For more videos on technology, visit Techytube.com
By Pavel@Techytube
Properties in Objective-C are some specific syntax commonly used in
this language.
Instead of declaring 2 methods (a getter and a setter) for each
variable or object declared inside our class, we can declare a
property that does that automatically for us.
We declare a property inside the interface file (after the closing "}"
), with the following syntax:
@property (nonatomic, strong) ClassName *propertyName; (for objects)
and
@property (nonatomic, strong) DataType propertyName; (for variables)
Then, in the implementation file, after the "@implementation
ClassName" line, we have to write:
@synthesize propertyName = _ propertyName;
, which will create the getter and setter on our behalf.
For more videos on technology, visit Techytube.com
By Pavel@Techytube
Properties in Objective-C are some specific syntax commonly used in
this language.
Instead of declaring 2 methods (a getter and a setter) for each
variable or object declared inside our class, we can declare a
property that does that automatically for us.
We declare a property inside the interface file (after the closing "}"
), with the following syntax:
@property (nonatomic, strong) ClassName *propertyName; (for objects)
and
@property (nonatomic, strong) DataType propertyName; (for variables)
Then, in the implementation file, after the "@implementation
ClassName" line, we have to write:
@synthesize propertyName = _ propertyName;
, which will create the getter and setter on our behalf.










![Archiving and unarchiving objects in Objective-C
Subscribe to our channel here for notifications on new video trainings. For more videos on technology, visit our website at http://www.techytube.com.
By pavel@techytube, for more from this author visit:
http://www.techytube.com/author/pavel
There are situations when we want to save the state of our objects to the system, for example when our app has to go in the background, or to terminate.
Of course, we can do our way for saving our objects, but iOS SDK provides us an elegant way for doing that by using NSKeyedArchiver - to archive objects, and NSKeyedUnarchiver - to unarchive objects.
But in order for those methods to work correctly, we need to implement 2 instance methods in the class we want to be able to archive, or unarchive.
These methods are mandatary in such situations, and should look like this:
- (void)encodeWithCoder:(NSCoder *)coder
{
[coder encodeObject:somePropertyOrField forKey:@KeyName];
}
- (id)initWithCoder:(NSCoder *)coder
{
self.propertyName = [coder decodeObjectForKey:@KeyName1];
fieldName = [coder decodeObjectForKey:@KeyName2];
return self;
}
somePropertyOrField must be a property or a field of our class; @KeyName, @KeyName1 ..., @KeyNamen may be arbitrary names we choose.
To archive (save the object on the File System), we use:
[NSKeyedArchiver archiveRootObject:objectName toFile:@/Users/pavel/myObjectState.plist];
which create the .plist file (which a special XML-format file in iOS) at the indicated path.
To unarchive (restore an object state from a file), we use:
MyClass *newObjectName = [NSKeyedUnarchiver unarchiveObjectWithFile:@/Users/pavel/myObjectState.plist];
which initializes the new object with the corresponding values from the .plist file. Archiving and unarchiving objects in Objective-C](https://i.ytimg.com/vi/KSIU8zRi7zk/mqdefault.jpg)