Функция/метод iPhone SDK с аргументами

Я создаю приложение, в котором делаю одно и то же несколько раз. Я собираюсь использовать как можно меньше кода и не хочу повторяться.

Мне нужен PHP-эквивалент многократно используемой функции, где я устанавливаю ввод, и функция возвращает вывод.

Приложение представляет собой средство сокращения URL-адресов, поэтому ввод, как вы можете предположить, представляет собой URL-адрес, а вывод — короткий URL-адрес.

Как лучше всего это сделать? Я знаю, что могу кодировать одно и то же дважды, но ненавижу повторяться.

Надеюсь, я донес свою мысль. Любая помощь приветствуется. - Джайлз


person Giles Van Gruisen    schedule 30.11.2009    source источник
comment
возможный дубликат stackoverflow.com /вопросы/1658433/   -  person Nir Levy    schedule 30.11.2009


Ответы (2)


Извините, если я упрощаю ваш вопрос, но вы спрашиваете, как определить метод Objective-C? Если это так, вам придется изучить Objective-C, от этого никуда не деться:

Язык программирования Objective-C – Обмен объектными сообщениями

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

Пример

- (float)multiplyThisFloatByTwoPointFive:(float)numberToMultiply
{
     return numberToMultiply * 2.5;
}

Чтобы назвать это:

[self multiplyThisFloatByTwoPointFive:3.7];

Библиотеки

Если вы имеете в виду «Я хочу поместить эти методы, не относящиеся к классу, где-то, где я могу получить к ним универсальный доступ», например, в библиотеке, вы можете сделать это двумя способами:

  1. Создайте своего рода «библиотечный» класс, например «MySpecialMathClass» (не путать с «моим математическим классом специального образования») или «MyAppAnimationTricks», и поместите туда свои методы (вы бы определили их как +someMethod: не -someMethod:, класс, а не метод экземпляра, согласно Objective-C).
  2. Если они когда-либо имеют дело только с примитивами (такими как int, float, double ...), подумайте о том, чтобы просто сделать их функциями C, а не методами Objective-C.
person Joshua Nozzi    schedule 30.11.2009
comment
Ну, технически ничто не мешает ему использовать функции C с объектами Objective-C, просто кажется, что это обычно не одобряется. Я бы, вероятно, поместил его где-нибудь в одноэлементный класс (делегат приложения?) Или как статический метод в классе, как вы упомянули. - person Bryan McLemore; 30.11.2009
comment
Мало того, что ничто технически не останавливает его, это довольно распространено. Мне было бы любопытно, почему кто-то не одобрит это - Objective-C является надмножеством C. Я упоминаю функции C для подпрограмм только для C-примитивов, потому что при очень частом вызове вы получаете некоторую скорость отказ от служебных данных по диспетчеризации сообщений Obj-C. В высокопроизводительных вычислениях это может иметь огромное значение. Измерьте сначала, конечно. :-) - person Joshua Nozzi; 24.04.2011

Я довольно новичок в этом, но вы, безусловно, можете писать функции (в отличие от методов) на Objective C.

Недавно я написал несколько служебных функций. Я создал файл NSObject для их размещения, но в нем не объявлено ни переменных, ни методов, а только функции. Затем реализуйте функции в файле .m и импортируйте файл .h в любой файл класса, где вы хотите использовать функции. Вы, очевидно, можете вызывать их из любого места в любом файле .m, который импортировал файл функции.

Джон Донер

person John R Doner    schedule 01.12.2009
comment
Где примеры кода ;( это просто красивый ответ для: Да, вы можете. - person Daniel Magnusson; 15.07.2010