Синтаксис метода в Objective C

Предположим, что f * h есть O (g * h). Тогда существуют такие x0, c, что f (x) * h (x) = c * g (x) * h (x) для всех x> = x0. Поскольку h всегда положительно, h (x) положительно, и мы можем делить обе части неравенства без изменения знака. Это дает f (x) < = c * g (x). Следовательно, f * h в O (g * h) влечет f в O (g).

То, что мы только что доказали, является правдоподобным. Ваше требование доказать следующее:

, если f не O (g), то f * h не O (g * h)

показано:

, если f * h равно O (g * h), то f равно O (g)

Поскольку все логические утверждения логически эквивалентны их В противоположность этому, ваше утверждение также верно. Вы можете рассуждать напрямую, умножая одну сторону неравенства на единицу h (x) / h (x), а затем умножая на h (x); но я думал, что отмена делением была более ясной.

176
задан epatel 25 March 2009 в 20:17
поделиться

3 ответа

Методы Objective C разработаны, чтобы быть сам документирование, и они одалживают у богатой традиции Smalltalk.

Я попытаюсь объяснить, что Вы имеете здесь, -(NSInteger) pickerView:(UIPickerView*)pickerView numberOfRowsInComponent:(NSInteger)component.

  • - (NSInteger)
    Эта первая часть указывает, что это - метод экземпляра Objective C, который возвращает объект NSInteger. - (тире) указывает, что это - метод экземпляра, где a + указал бы, что это - метод класса. Первое значение в круглой скобке является типом возврата метода.

  • pickerView:
    Эта часть является частью названия сообщения. Полное название сообщения в этом случае pickerView:numberOfRowsInComponent:. Время выполнения Objective C берет эту информацию о методе и отправляет ее на обозначенный получатель. В чистом C это было бы похоже
    NSInteger pickerView(UIPickerView* pickerView, NSInteger component). Однако, так как это - Objective C, дополнительная информация упаковывается на название сообщения.

  • (UIPickerView*)pickerView
    Эта часть является частью входа. Вход здесь имеет тип UIPickerView* и имеет название локальной переменной pickerView.

  • numberOfRowsInComponent:
    Эта часть является второй частью названия сообщения. Как Вы видите здесь, названия сообщения разделены, чтобы помочь указать на то, какая информация Вы являетесь передающими к получателю. Таким образом, если бы я должен был передать объект myObject с нечто переменных и панелью, то я ввел бы:
    [myObject pickerView:foo numberOfRowsInComponent:bar];
    в противоположность стилю C++:
    myObject.pickerView(foo, bar);.

  • (NSInteger)component
    Это - последняя часть входа. вход здесь имеет тип NSInteger и имеет название локальной переменной компонента.

356
ответ дан locriani 23 November 2019 в 20:22
поделиться

В Objective C название метода состоит изо всех частей объявления, которые не являются аргументами и типами. Название этого метода поэтому было бы:

pickerView:numberOfRowsInComponent:

Метод был бы эквивалентен функции C-стиля, которая смотрела следующим образом:

править: (с благодарностью к Jarret Hardie):

NSInteger pickerViewNumberOfRowsInComponent(UIPickerView * pickerView, NSInteger component)
52
ответ дан Community 23 November 2019 в 20:22
поделиться

Добавляя к предыдущим ответам, я был бы, точно так же, как, чтобы сказать, что методы Objective C (или сообщения, если Вы предпочитаете) имеют внешние и внутренние названия параметра.

Так в этом случае:

- (NSInteger) pickerView:(UIPickerView *)pickerView 
 numberOfRowsInComponent:(NSInteger)component

numberOfRowsInComponent внешнее имя, то, которое Вы использовали бы при вызове этого метода с внешней стороны.

И component внутреннее название параметра, тот, который Вы используете для обращения к параметру изнутри метода.

Надежда, которая разрешает его немного.

29
ответ дан neonblitzer 23 November 2019 в 20:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: