Когато пишете програма Objective-C за вашия iPhone или Mac OS X приложения, всичко, което правите, е да предоставите набор от инструкции, които компютърът да следва. По принцип програмите манипулират числата и текста и като се има предвид всичко, компютърната програма има само две части: променливи (и други структури), които „държат“ данните, и инструкции , които извършват операции с тези данни.
Изготвяне на изявление на Objective-C
Програмирането на приложения за iPhone и Mac в Objective-C означава да направите изявление. Можете да разпознаете изявление в Objective-C веднага, като забележите точката и запетаята в края:
изявление;
Ще видите други редове код, но освен ако редът не завършва с точка и запетая, това не е израз на Objective-C.
Objective-C Вградени типове данни и нови типове данни
Променливите, които декларирате в Objective-C, Objective-C типове данни, трябва да бъдат тип, който компилаторът може да разпознае. Objective-C идва с редица вградени типове данни, както и механизми за създаване на нови, за програмиране на вашия iPhone или Mac OS X приложения.
Вградени типове
Тип |
Описание |
размер |
char |
Един герой |
1 байт |
международен |
Цяло число - цяло число |
4 байта |
плува |
Единично прецизно число с плаваща запетая |
4 байта |
Двойна |
Число с двойна точност с плаваща запетая |
8 байта |
къс |
Кратко цяло число |
2 байта |
дълго |
Двойно късо |
4 байта |
дълго дълго |
Двойно дълго |
8 байта |
BOOL |
Булев (знак) |
1 байт |
Типове изброяване
enum typeName { идентификатор1, ... идентификатор};
Идентификаторите са от константи от тип int.
typedef
typedef typeName идентификатор;
Свързва идентификатор с конкретен тип.
Константи
const type идентификатор = стойност;
#define стойността на идентификатора
Позволява ви да дефинирате имена за константи.
Оператори на Objective-C
Операторите на Objective-C, подобно на тези в други езици за програмиране, ви позволяват да извършвате операции с променливи (оттук и името). Objective-C предоставя много оператори и проследяването на всички от тях може да бъде трудно, докато програмирате приложенията си за iPhone или Mac OS X. Използвайте следните таблици, за да разширите паметта си кой оператор изпълнява каква задача.
Аритметични оператори
Оператор |
Какво прави |
+ |
Добавяне |
– |
Изваждане |
* |
Умножение |
/ |
дивизия |
% |
модулно |
Оператори на релации и равенство
Оператор |
Какво прави |
== |
Равна на |
!= |
Не е равно на |
> |
По-голям от |
< |
По-малко от |
>= |
По-голямо или равно на |
<= |
По-малко или равно на |
Логически оператори
Оператор |
Какво прави |
! |
НЕ |
&& |
Логично И |
|| |
Логическо ИЛИ |
Съставни оператори на присвояване
Оператор |
Какво прави |
+= |
Добавяне |
-= |
Изваждане |
*= |
Умножение |
/= |
дивизия |
%= |
модулно |
&= |
Побитово И |
|= |
Побитово включващо ИЛИ |
^= |
Изключително ИЛИ |
<<= |
Преместване наляво |
>>= |
Преместване надясно |
Оператори на увеличение и декремент
Оператор |
Какво прави |
++ |
Добавяне |
— |
Изваждане |
*= |
Умножение |
/= |
дивизия |
%= |
модулно |
&= |
Побитово И |
|= |
Побитово включващо ИЛИ |
^= |
Изключително ИЛИ |
<<= |
Преместване наляво |
>>= |
Преместване надясно |
Побитови оператори
Оператор |
Какво прави |
& |
Побитово И |
| |
Побитово включващо ИЛИ |
^ |
Изключително ИЛИ |
~ |
Унарно допълнение (разрядна инверсия) |
<< |
Преместване наляво |
>> |
Преместване надясно |
Други оператори
Оператор |
Какво прави |
() |
В ролята |
, |
запетая |
Размер на() |
Размер на |
? : |
Условно |
& |
Адрес |
* |
Индиректност |
Контролни оператори и цикли в Objective-C
В програмирането, както и в живота, трябва да взимате решения и да действате според тях. Objective-C предоставя контролни оператори и цикли, за да помогне на програмата ви да предприеме действие. Може да искате да повторите набор от инструкции въз основа на някакво условие или състояние, например, или дори да промените последователността на изпълнение на програмата. Ето основния синтаксис за контролни оператори и цикли на Objective-C.
ако друго
ако (условие) {
твърдение(я), ако условието е вярно;
}
друго {
твърдение(я), ако условието не е вярно;
}
за
for (брояч; условие; брояч за актуализиране) {
изявление(и) за изпълнение, докато условието е вярно;
}
за в
for (Въведете newVariable в израза) {
израз(и);
}
или
Въведете съществуваща променлива ;
за (съществуваща променлива в израз) {
изявления);
}
Изразът е обект, който отговаря на протокола NSFastEnumeration.
-
Изброяването на NSArray и NSSet е над съдържание.
-
Изброяването на NSDictionary е над ключовете.
-
Изброяването на NSManagedObjectModel е над обектите.
докато
докато (условие) {
изявление(и) за изпълнение, докато условието е вярно
}
направи докато
направи {
изявление(и) за изпълнение, докато условието е вярно
} докато (условие);
Прескачащи изявления
връщане ;
Спира изпълнението и се връща към извикващата функция.
прекъсване;
Оставете цикъл.
продължи;
Пропуснете останалата част от цикъла и започнете следващата итерация.
отидете labelName;
...
labelName:
Абсолютен скок към друга точка в програмата (не я използвайте).
изход ();
Прекратява вашата програма с код за изход.
Деклариране на класове и изпращане на съобщения в Objective-C
Обектно-ориентираните езици за програмиране ви позволяват да декларирате класове, да създавате производни класове (подклас) и да изпращате съобщения до обектите, инстанцирани от клас. Това е същността на обектно-ориентираното програмиране и част от обектно-ориентираните разширения, които Objective-C добавя към C. За да се гарантира, че всичко работи гладко, са налични директиви на компилатора, които ви позволяват да информирате компилатора за вашите класове, като използвате @class и #импорт.
Интерфейс
#import "Superclass.h"
@interface ClassName : Суперклас {
декларации на променливи на екземпляра;
}
декларации на методи
@property(attributes) декларация на променлива на екземпляр;
-д
Изпълнение
#import "ClassName.h"
@implementation ClassName
@synthesize променлива на екземпляра;
дефиниции на метод
-д
Синтаксис на съобщението
[получател съобщение]
#импорт
#import “filename.h”
Гарантира, че заглавен файл ще бъде включен само веднъж.
@клас
@class ClassName;
Насочва компилатора към дефинирани от потребителя типове.