Оператор typedef в Objective-C

Оператор typedef в Objective-CObjective-C позволяет назначать для типа данных альтернативное имя. Для этого используется оператор typedef. В следующей строке определяется имя Counter(счетчик) как эквивалент типа данных Objective-C int.

Затем можно объявить переменные с типом Counter, как в следующей строке.

Компилятор Objective-C будет интерпретировать это как объявление обычных целых переменных j и n. Определение j и n посредством typedef указывает назначение переменных в программе.

Объявление в традиционной форме с типом int оставило бы их назначение непонятным. Ниже с помощью typedef определяется тип с именем NumberObject для объектов типа Number.

Переменные, которые объявляются затем с типом NumberObject, как в строке:

будут интерпретироваться так, как если бы они были объявлены обычным образом:

Чтобы определить имя нового типа с помощью typedef, нужно выполнить следующую процедуру:

  1. Написать такое же объявление, как при объявлении переменной нужного типа.
  2. Там, где должно быть имя объявляемой переменной, поместить имя нового типа.
  3. Перед всем этим поставить слово typedef.

Для примера определим тип с именем Direction(Направление) как перечислимый тип данных со значениями east, west, north и south(восток, запад, юг и север), напишем определение этого перечислимого типа данных и подставим имя Direction там, где обычно ставится имя переменной. Перед всем этим нужно поместить ключевое слово typedef.

После этого можно объявлять переменные с типом Direction:

Foundation framework содержит следующее определение typedef для NSComparisonResult в одном из заголовочных файлов.

Некоторые методы в Foundation framework, которые выполняют сравнение(comparison), возвращают значение этого типа. Например, метод сравнения строк Foundation с именем compare: возвращает значение типа NSComparisonResult после сравнения двух строк, которые являются объектам NSString. Этот метод объявляется следующим образом:

Чтобы проверить равенство двух объектов NSString с именами userName и savedName, можно включить в программу следующую строку:

На самом деле здесь проверяется, равен ли нулю результат метода compare:.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *