[問題] obj-c有pass by reference這件事嗎?

看板MacDev作者 (肉元,吉米,助教)時間15年前 (2010/09/19 19:13), 編輯推噓1(105)
留言6則, 4人參與, 最新討論串1/3 (看更多)
我寫了一小段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

09/19 19:56, , 1F
沒有 pass by ref.
09/19 19:56, 1F

09/19 20:00, , 2F
那可以請教一下我這種問題通常是用什麼方式解決的嗎qq
09/19 20:00, 2F

09/19 20:04, , 3F
userID傳過去有 retain 就沒問題了(dealloc時記得 release)
09/19 20:04, 3F

09/19 20:06, , 4F
有改變就重傳吧 不然就是傳 NSString **
09/19 20:06, 4F

09/19 20:07, , 5F
不然實作 singleton 也行
09/19 20:07, 5F

09/19 21:38, , 6F
用 notification 通知吧
09/19 21:38, 6F
文章代碼(AID): #1CbV1Gi4 (MacDev)
文章代碼(AID): #1CbV1Gi4 (MacDev)