【发布时间】:2012-08-13 13:16:54
【问题描述】:
如果我对一个对象进行更改,我想指向一个对象。相同的变化必须反映到其他对象。该怎么做?
我做了一个示例,但它不起作用。
请检查一次代码。我的代码有什么错误?
-(void)viewDidLoad{
str = [[NSString alloc] initWithString:@"Taruni"];
str2=str;
str2=@"Kalpana chawla";
[self changeStr:str];
NSLog(@"str = %@",str);
[str release];
[str release];
[super viewDidLoad];
}
-(void)changeStr:(NSString *)x
{
x=@"Chandra";
}
在.h文件中,我是这样声明的
@property(nonatomic,assign) NSString *str;
@property(nonatomic,assign) NSString *str2;
如果我改变 str2 的值,str 不会得到反映。
怎么做?
【问题讨论】:
-
and...顺便说一句...你为什么要释放 str 两次?
-
我也在检查保留计数值。即使在释放两次之后,它也没有抛出任何异常。艾米,我知道为什么?
-
@DarkFighter.. 您的链接没有回答我的问题.. 即使我已将其从 NSString 更改为 NSMutableString,它仍显示相同的旧值
-
你把所有的 NSString 都改成 NSMutableString 了吗?包括你的方法的参数?和分配...
标签: iphone objective-c ios memory-management