Определение переменных и понятие о них

Определение переменных и понятие о них

Во всех современных языках программирования, в том числе в Objective-C, существуют переменные. Переменные — это просто псевдонимы, обозначающие участки (местоположения) в памяти. Каждая переменная может иметь следующие свойства:

тип данных, представляющий собой либо примитив (например, целое число), либо объект;

• имя;

• значение.

Задавать значение для переменной приходится не всегда, но вы обязаны указывать ее имя и тип. Вот несколько типов данных, которые необходимо знать для написания типичного приложения iOS.

Если тип данных является изменяемым, то вы можете изменить такие данные уже после инициализации. Например, вы можете откорректировать одно из значений в изменяемом массиве, добавлять в него новые значения или удалять их оттуда. Напротив, при работе с неизменяемым типом вы должны предоставлять все значения для него уже на этапе инициализации. Позже нельзя будет пополнить набор этих значений, удалить какие-либо значения или изменить их. Неизменяемые типы полезны в силу своей сравнительно более высокой эффективности. Кроме того, они помогают избежать ошибок, если все значения должны оставаться неизменными на протяжении всего жизненного цикла данных.

• NSInteger и NSUInteger. Переменные этого типа могут содержать целочисленные значения, например 10, 20 и т. д. Тип NSInteger может содержать как положительные, так и отрицательные значения, но тип NSUInteger является беззнаковым, на что указывает буква U в его названии. Не забывайте, что слово «беззнаковый» в терминологии языков программирования означает, что число ни при каких условиях не может быть отрицательным. Отрицательные значения могут содержаться только в числовом типе со знаком.

• CGFloat. Содержит числа с плавающей точкой, имеющие десятичные знаки, например 1.31 или 2.40.

• NSString. Позволяет сохранять символьные строки. Такие примеры мы рассмотрим далее.

• NSNumber. Позволяет сохранять числа как объекты.

• id. Переменные типа id могут указывать на объект любого типа. Такие объекты называются нетипизированными. Если вы хотите передать объект из одного места в другое, но по какой-то причине не хотите при этом указывать их тип, то вам подойдет именно такой тип данных.

• NSDictionary и NSMutableDictionary. Это соответственно неизменяемый и изменяемый варианты хеш-таблиц. В хеш-таблице вы можете хранить ключ и ассоциировать этот ключ со значением. Например, ключ phone_num может иметь значение 0 55524 87700. Для считывания значений достаточно ссылаться на ассоциированные с ними ключи.

• NSArray и NSMutableArray. Неизменяемые и изменяемые массивы объектов. Массив — это упорядоченная коллекция элементов. Например, у вас может быть 10 строковых объектов, которые вы хотите сохранить в памяти. Для этого хорошо подойдет массив.

• NSSet, NSMutableSet, NSOrderedSet, NSMutableOrderedSet. Это типы множеств. Множества напоминают массивы тем, что могут содержать в себе наборы объектов, но в отличие от массива множество может включать в себя только уникальные объекты. Массив может содержать несколько экземпляров одного и того же объекта, а в множестве каждый объект может присутствовать только в одном экземпляре. Рекомендую вам четко усвоить разницу между массивами и множествами и использовать их правильно.

• NSData и NSMutableData. Неизменяемые и изменяемые контейнеры для любых данных. Такие типы данных очень вам пригодятся, если вы, например, хотите выполнить считывание содержимого файла в память.

Одни из рассмотренных нами типов данных являются примитивами, другие — классами. Вам придется просто запомнить, какие из них относятся к каждой из категорий. Например, тип данных NSInteger является примитивом, а NSString — классом. Поэтому из NSString можно создавать объекты. В языке Objective-C, как и в C и C++, существуют указатели. Указатель — это тип данных, в котором сохраняется адрес в памяти. По этому адресу уже хранятся фактические данные. Вы уже, наверное, знаете, что указатели на классы обозначаются символом астериска (*):

NSString *myString = @"Objective-C is great!";

Следовательно, если вы хотите присвоить строку переменной типа NSString на языке Objective-C, то вам понадобится просто сохранить данные в указатель типа NSString *. Но если вы собираетесь сохранить в переменной значение, представляющее собой число с плавающей точкой, то не сможете использовать указатель, так как тип данных, к которому относится эта переменная, не является классом:

/* Присваиваем переменной myFloat значение PI */

CGFloat myFloat = M_PI;

Если вам нужен указатель на эту переменную, соответствующую числу с плавающей точкой, то вы можете поступить так:

/* Присваиваем переменной myFloat значение PI */

CGFloat myFloat = M_PI;

/* Создаем переменную указателя, которая направлена на переменную myFloat */

CGFloat *pointerFloat = &myFloat;

Мы получаем данные от исходного числа с плавающей точкой путем простого разыменования (myFloat). Если получение значения происходит с применением указателя, то требуется использовать астериск (*pointerFloat). В некоторых ситуациях указатели могут быть полезны — например, при вызове функции, которая задает в качестве аргумента значение с плавающей точкой, а вы хотите получить новое значение после возврата функции.

Но вернемся к теме классов. Пожалуй, следует разобраться с ними немного подробнее, пока мы окончательно не запутались. Итак, приступим.

Данный текст является ознакомительным фрагментом.



Поделитесь на страничке

Следующая глава >

Похожие главы из других книг:

Понятие о стилях CSS

Из книги автора

Понятие о стилях CSS Для создания представления Web-страниц предназначена технология каскадных таблиц стилей (Cascading Style Sheets, CSS), или просто таблиц стилей. Таблица стилей содержит набор правил (стилей), описывающих оформление самой Web- страницы и отдельных ее фрагментов. Эти


Понятие о фильтрах

Из книги автора

Понятие о фильтрах С понятием командных конструкций тесно связано понятие программ-фильтров. Это — команды, способные принимать на свой ввод данные с вывода других команд, производить над ними некоторые действия и перенаправлять свой вывод (то есть результат


Понятие о функциях

Из книги автора

Понятие о функциях И уж совсем в заключение этого раздела осталось сказать пару слов о функциях командной оболочки. Это — такая же последовательность команд (или даже просто одиночная команда), как и сценарий, но — не вынесенная в отдельный исполняемый файл, а помещённая


Понятие о стилях CSS

Из книги автора

Понятие о стилях CSS Для создания представления Web-страниц предназначена технология каскадных таблиц стилей (Cascading Style Sheets, CSS), или просто таблиц стилей. Таблица стилей содержит набор правил (стилей), описывающих оформление самой Web- страницы и отдельных ее фрагментов. Эти


1.4.8. Понятие о монтировании

Из книги автора

1.4.8. Понятие о монтировании Особого внимания заслуживает операции монтирования. На вашем жестком диске, кроме Linux-разделов, есть разделы других операционных систем (например, Windows). Для того чтобы получить доступ к файлам, находящимся в этих разделах, вам нужно


Понятие об ODS

Из книги автора

Понятие об ODS ODS - это аббревиатура для On-Disk Structure, т. е. структура данных баз данных InterBase на диске. ODS определяет, как организованы данные внутри файлов базы данных. Определение основных констант и структур данных для реализации On-Disk Structure находится в файле из комплекта


55. Понятие системы VВА

Из книги автора

55. Понятие системы VВА VBA представляет собой подмножество VB и включает средства образования приложений VB, его структуры данных и управляющие структуры, возможность создания пользовательских типов данных. Также как и VB, VBA является системой визуального программирования,


Правило 26: Откладывайте определение переменных насколько возможно

Из книги автора

Правило 26: Откладывайте определение переменных насколько возможно Всякий раз при объявлении переменной, принадлежащий типу, в котором есть конструктор или деструктор, программа тратит время на ее конструирование, когда поток управления достигнет определения


Понятие выделения

Из книги автора

Понятие выделения Создавая выделение, мы обозначаем в документе область, с которой хотим работать, а вся остальная часть документа для редактирования становится недоступной. Это правило справедливо для всех случаев, когда мы работаем с инструментами и командами


ОПРЕДЕЛЕНИЕ СТРУКТУРНЫХ ПЕРЕМЕННЫХ

Из книги автора

ОПРЕДЕЛЕНИЕ СТРУКТУРНЫХ ПЕРЕМЕННЫХ      Слово "структура" используется двояко. Во-первых, в смысле "структурного шаблона", о котором мы только что рассказали. Шаблон является схемой без содержания; он сообщает компилятору, как делать что-либо, но нс вызывает никаких


Понятие текстуры

Из книги автора

Понятие текстуры Бытует мнение, что текстура — это изображение, накладываемое на трехмерную модель. Данное утверждение совершенно не верно. Изображение, накладываемое на модель в рамках текстуры, называется картой (Map), понятие же текстуры — шире.Текстура в 3ds Max


14.1. Понятие о переменных интерпретатора shell

Из книги автора

14.1. Понятие о переменных интерпретатора shell Переменные позволяют выполнить настройку среды. Они содержат информацию, которая применяется определенным пользователем. Благодаря этому система получает более подробные сведения о пользователях. Кроме того, переменные


9.1. Понятие о моделях

Из книги автора

9.1. Понятие о моделях Каждый объект имеет большое количество различных свойств. В процессе построения модели выделяются главные, наиболее существенные из них. Так, модель самолета должна иметь геометрическое подобие оригиналу, модель атома – правильно отражать