Типы данных для Objective C - PullRequest
       2

Типы данных для Objective C

0 голосов
/ 12 сентября 2010

Какой тип данных Objective-C вы бы порекомендовали хранить:

Положение - положение объекта на экране.
Направление - Направление объекта
Скорость - Ну, скорость объекта
Границы - допустимые границы для того, где разрешено находиться объекту.

Спасибо!

Бьёрн

Ответы [ 3 ]

2 голосов
/ 12 сентября 2010

Objective-C - это расширенный набор C. Для такого рода вещей вы обычно используете структуры C, хотя в качестве альтернативы вы можете сделать их полями объекта.

Если ваш вопрос на самом деле касается предопределенных типов в Какао , то есть варианты, зависящие от конкретной версии (т. Е. Платформы - Mac OS, iOS или, я полагаю, предположительно GNUStep) и конкретной цели.

Для базового 2D-материала, простейшим выбором, вероятно, будет CGPoint для положения, направления и скорости (при условии, что скорость представляет собой векторную величину, отличную от направления; в противном случае просто используйте double) и CGRect для границ.

(Возможно, это незначительное семантическое злоупотребление, чтобы использовать CGPoint для непозиционных векторов, но я не вижу причин быть таким разборчивым.)

0 голосов
/ 12 сентября 2010

CoreLocation использует CLLocation для всего, кроме ограничения и столкновения.Однако я бы не советовал использовать его, если вы не используете широту / долготу для своей системы координат и хотите интегрировать ее с функцией CoreLocation GPS.

Существуют и другие конструктивные соображения.Вы хотите, чтобы местоположение объекта было относительно его ограничительной рамки или в глобальных координатах?Нужно ли хранить направление на направление отдельно от направления скорости?Вам нужно высокое разрешение (что означает «плавающие») или более быстрое вычисление (которое направляет вас к целым числам)?Вам нужно сохранить его в базе данных CoreData?(Объект, производный от NSManagedObject, вместо структур.)

Я собирался сказать, использовать структуры сторонней библиотеки, которую вы собираетесь использовать (UIKit, Cocos2d, OpenGL или CoreLocation), но затем яподумал: «зачем ограничивать себя, когда вы можете добавлять методы, такие как - (CLLocationCoordinate2D) coreLocationCoordinate, к вашему объекту».

Я бы предложил создать собственную структуру или объект.

0 голосов
/ 12 сентября 2010

Существуют нативные или библиотечные (базовые классы) типы / структуры почти для всего этого, кроме тех случаев, когда я что-то упускаю, NSPoint и NSRect могут охватывать практически все, что вы хотите (области, векторы, точки) Они могут не быть типами данных «Objective-C», но доступны в библиотеке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...