Как передать значение методу в Objective C - PullRequest
0 голосов
/ 18 мая 2010

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

//detect the change in the segmented switch so we can; change text
- (IBAction)switchChanged:(id)sender
{
    NSLog(@"Switch change detected");
    //grab the info from the sender
    UISegmentedControl *selector = sender;
    //grab the selected segment info from selector. This returns a 0 or a 1.
    int selectorIndex = [selector selectedSegmentIndex];
    changeText (selectorIndex);
}

int changeText (int selectorPosition)
{
    NSLog(@"changeText received a value. Selector position is %d", selectorPosition);
    //Idea is to receive a value from the segmented controler and change the screen text accordingly

    return 0;
}

Это прекрасно работает, но я хочу научиться делать это с объектами и сообщениями.Как бы я переписал эти два метода, чтобы сделать это?

Cheers

Rich

1 Ответ

1 голос
/ 18 мая 2010

На самом деле вам нужно будет переписать только один из них, поскольку - (IBAction)switchChanged:(id)sender - это объективный метод c.

Как только у вас есть определение класса, вы можете переписать changeTextFunction как:

//detect the change in the segmented switch so we can; change text
- (IBAction)switchChanged:(id)sender
{
    NSLog(@"Switch change detected");
    //grab the info from the sender
    UISegmentedControl *selector = sender;
    //grab the selected segment info from selector. This returns a 0 or a 1.
    int selectorIndex = [selector selectedSegmentIndex];
    [self changeText:selectorIndex];
}

-(int) changeText:(int) selectorPosition
{
    NSLog(@"changeText received a value. Selector position is %d", selectorPosition);
    //Idea is to receive a value from the segmented controler and change the screen text    

    return 0;
}

Также обратите внимание, что вы должны добавить в свой заголовочный файл:

-(int) changeText:(int) selectorPosition;

Также обратите внимание, что это для добавления метода changeText в класс, который имеет метод switchChanged. Совет: используйте command + option + up для прямого перехода к файлу заголовка.

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