Я передаю iVar в функцию.IVar является двойным.Значение iVar внутри функции является правильным, но значение iVar вне функции не изменяется.Это должно быть связано с тем, как я получаю iVar в функцию.Как передать двойной iVar, чтобы его значение изменялось в объекте, а не только в функции?Я делаю то же самое с указателями, и результаты ожидаются, поэтому я не понимаю скалярную передачу аргументов в c / target-c.
Код выглядит так: .h
@interface myClass: NSObject
{
double myDouble;
}
- (void)func1;
- (void)func2: (double)myDouble;
.m
- (void)func1 {
myDouble = 1.2
NSLog(@"Before func2 myDouble = %f", myDouble);
[self func2: myDouble];
NSLog(@"After func2 myDouble = %f", myDouble);
}
- (void)func2: (double)adouble
{
NSLog(@"In func2 before operation adouble = %f",adouble);
NSLog(@"In func2 before operation myDouble = %f", myDouble);
adouble = 3.4;
NSLog(@"In func2 after operation adouble = %f",adouble);
NSLog(@"In func2 after operation myDouble = %f", myDouble);
}
приводит к:
До func2 myDouble = 1.2
В func2 до операции adouble = 1.2
В func2до операции myDouble = 1.2
в func2 после операции adouble = 3.4
в func2 после операции myDouble = 1.2
после func2 myDouble = 1.2