Objective-C Basics
https://www.tutorialspoint.com/objective_c/index.htm
You should do the following:
You should create an iOS application in Xcode, written in Objective-C. It should contain 2 classes: Organization
and Employee
, both of each are subclasses of NSObject
.
Employee
should have the following properties:
- Private “firstName” and “lastName”, which are of type
NSString
. - Public “salary” of type
int
. - Public readonly property “fullName”, which returns the conjuction of first name and last name.
And the following methods:
- Public
initWithFirstName:lastName:salary
: initializer method, which accepts first name, last name and salary as input parameters.
Organization
should have the following properties:
- Public “name” of type
NSString
. - Private “employees” of type
NSArray<Employee>
.
And the following methods:
- Public
initWithName
initializer method, which accepts organization name as an input parameter. - Public
addEmployeeWithName:
(accepts employee name as an input parameter with no return type), which creates a new employee and adds it to the array. The salary is random between 100 and 5000 and is divisible by 10 (e.g. 110, 4670). - Public
calculateAverageSalary
method, which return the average salary of all employees. - Public
employeeWithLowestSalary
method, which returns one employee with the lowest salary in the organization. - Public
employeesWithSalary:tolerance:
method, which accepts two arguments of type int - salary and tolerance - and returns all employees with given salary +- tolerance as an array.
Application should create one organization and multiple employees, which are added to the organization. Than all of the methods should be demonstrated in AppDelegate's applicationDidFinishLaunching
method. Everything should be logged to NSLog
.
You should be able to answer the following questions:
- How could a class be defined in Objective-C?
- What is a property?
- What options does a property have?
- What is ARC?
- What is a category?
- What is the difference between instance method and class method?