На самом деле, IBAction
преобразуется в void
препроцессором.Он используется Interface Builder в качестве метки, которая идентифицирует этот метод как действие, которое может быть связано с объектом IB.
Нет способа (AFAIK) использовать два возвращаемых типа в функции (например, `(IBAction)double) ´, эквивалентно ´ (void double) ´), но хорошей практикой может быть что-то вроде этого:
- (IBAction)changeLatAction:(id)sender {
NSNumber *str = <get the NSNumber from a valid place>;
[self changeLat:str];
}
- (double) changeLat:(NSNumber *)str {
longi = str;
double lop = longi.doubleValue;
NSLog(@"%f",lop);
return ????;
}
Ваше первое объявление changeLat
кажется неправильным, поскольку в качестве первого параметравы всегда получите объект «отправитель» или «вызывающий», связанный с IB (при вызове, конечно, из действия), поэтому вам нужно получить значение str
из допустимого места.
Приветствие.