看板 MacDev 關於我們 聯絡資訊
我寫了一小段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
yllan:沒有 pass by ref. 09/19 19:56
Gsus:那可以請教一下我這種問題通常是用什麼方式解決的嗎qq 09/19 20:00
Sapp:userID傳過去有 retain 就沒問題了(dealloc時記得 release) 09/19 20:04
Sapp:有改變就重傳吧 不然就是傳 NSString ** 09/19 20:06
Sapp:不然實作 singleton 也行 09/19 20:07
zonble:用 notification 通知吧 09/19 21:38