Objective-C: Cannot Change Value of Instance Variable Inside a Function
        Posted  
        
            by user262325
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by user262325
        
        
        
        Published on 2010-06-17T11:47:10Z
        Indexed on 
            2010/06/17
            13:33 UTC
        
        
        Read the original article
        Hit count: 213
        
Hello everyone,
I cannot change the value of an instance variable inside a function.
I have defined a class:
//  info.h
#import <Foundation/Foundation.h>
@interface NSMyObject : NSObject 
{
    NSInteger i;
}
-(void) setI:(NSInteger)v;
 @end
#import "info.h"
@implementation NSMyObject
-(void) setI:(NSInteger)v ;
{
    i=v;    
}
- (void)dealloc {
    [super dealloc];
}
@end
I call a function 'myFunction' with parameter temObj which is a NSMyObject instance.
myFunction(temObj);//temObj is NSMyObject
In the function, I can change the value of the instance variable of parameter obj.
-(void)myFunction:(NSMyObject*) obj;
{
    [obj setI:0];
}
... expecting this to change the content of temObj.
But when I check the results of operation on obj in function myFunction the value of temObj.i has not changed. 
Welcome any comment
Thanks
© Stack Overflow or respective owner