作者Gsus (肉元,吉米,助教)
看板MacDev
标题[问题] obj-c有pass by reference这件事吗?
时间Sun Sep 19 19:13:18 2010
我写了一小段code
NSString *aString = @"a";
NSString *bString = @"b";
bString = aString;
^^^^^^^^^^^^^^^^^^
aString = @"c";
NSLog(@"aString = %@", aString);
NSLog(@"bString = %@", bString);
aString = bString;
^^^^^^^^^^^^^^^^^^
这行code看似是pointer assignment,但就结果来看却是value assignment
其实是最近遇到一些问题突然让我想起pass by reference的问题....
P.S. 我遇到的问题是
我有一个loginViewController,一个dataViewController & settingsViewController
一旦login成功了便会得到userID并传给dataViewController & settingsViewController
但是settingsViewController可以让使用者loggout
总之这3个viewController都有一个attribute叫做userID
然後每当userID有改变时又必须在viewControllers之间同步
用protocol用到错综复杂....突然想起pass by reference这件事
顺便问一下这种问题该怎麽处理比较好呢?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 111.248.5.150
1F:推 yllan:没有 pass by ref. 09/19 19:56
2F:→ Gsus:那可以请教一下我这种问题通常是用什麽方式解决的吗qq 09/19 20:00
3F:→ Sapp:userID传过去有 retain 就没问题了(dealloc时记得 release) 09/19 20:04
4F:→ Sapp:有改变就重传吧 不然就是传 NSString ** 09/19 20:06
5F:→ Sapp:不然实作 singleton 也行 09/19 20:07
6F:→ zonble:用 notification 通知吧 09/19 21:38