[問題]ARC下 內存崩潰

看板MacDev作者 (boy19931118)時間9年前 (2015/12/02 00:12), 編輯推噓6(6013)
留言19則, 11人參與, 最新討論串1/2 (看更多)
小弟近期在撰寫ObjC APP 本身是大學相關科系 所以相關知識都還可以 但由於系上沒有本課程 貌似也沒有老師會 所以遇到問題都只能Google 目前所遇到的問題是 記憶體管理、內存崩潰、StoryBoard之間參數傳遞選擇 問題一 --------------------------------------------------- 我有一個Navigation A寫了自定義Button Push View B UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle: nil]; LocationWebView *lvc = [storyboard instantiateViewControllerWithIdentifier:@"LocationWebView"]; [self.navigationController pushViewController:lvc animated:YES]; 程式碼大概是這樣 因為MAC暫時不在身邊 無法拿自己的程式碼 而B也寫了一個返回Button [[self navigationController] popViewControllerAnimated:YES]; 但是返回A後 B的內存並沒有被釋放 所以只要不停的A>B>A>B>A>B 使用記憶體就會持續上升 希望能指點一下 問題二 ------------------------------- 或許這部分我應該自己去處理 要是您太熱心的話 就回答吧 對於@property (XXX,XXX) 我應該怎麼判斷 什麼樣的物件 適合選擇什麼樣的計數器? 現階段而言 所需要的東西都是網路上複製的..... 問題三 ------------------------------------ 兩個StoryBoard之間 要傳遞參數 該採用哪種方法? 我目前大多都使用 extern 來傳遞 但缺點是 必須在程式第一個.h檔內就宣告好 好像不太符合邏輯 也有使用過Userdefault來存取 這個好像適用於存取使用者設定之類的比較妥當 而近日才知道 delegate 委派 好像也有用類別來傳取的方法 請問各位大多都使用哪種方法? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.116.46.42 ※ 文章網址: https://www.ptt.cc/bbs/MacDev/M.1448986352.A.9D8.html

12/02 00:43, , 1F
只回答1,B是否有 block retain cycle 問題
12/02 00:43, 1F

12/02 01:50, , 2F
太多中國用語看不懂 物件? 計數器?
12/02 01:50, 2F

12/02 01:52, , 3F
Extern我也看不懂是啥?不是c 才有extern嗎?
12/02 01:52, 3F

12/02 09:30, , 4F
3.在prepareForSegue傳值給segue.dest的 public property
12/02 09:30, 4F

12/02 09:31, , 5F
啊 , 你是兩個storyBoard
12/02 09:31, 5F

12/02 09:56, , 6F
好多中國用語,看無 ...
12/02 09:56, 6F

12/02 10:26, , 7F
只有 '內存' 是中國術語吧,其他的台灣也很常用
12/02 10:26, 7F

12/02 11:00, , 8F
1. B沒釋放是有可能他裡面的物件沒正確的釋放導致的
12/02 11:00, 8F

12/02 11:41, , 9F
可能是查中國資訊的關係 抱歉 extern我也是上網查到
12/02 11:41, 9F

12/02 11:41, , 10F
可以使用 但是希望能夠正規一點 不要亂用
12/02 11:41, 10F

12/02 11:42, , 11F
darktt 因為是在ARC下 不能release 只能將有alloc的o
12/02 11:42, 11F

12/02 11:42, , 12F
j=nil 這樣算釋放?
12/02 11:42, 12F

12/02 13:05, , 13F
是,就只能這麼做
12/02 13:05, 13F

12/02 19:17, , 14F
Swift向你招手
12/02 19:17, 14F

12/02 21:53, , 15F
1. 如darktt大所說 2.看不懂 3.我的話會用delegate
12/02 21:53, 15F

12/03 03:40, , 16F
2問的是property attribute?
12/03 03:40, 16F

12/03 16:36, , 17F
在B裡面寫dealloc看有沒有被呼叫到看看
12/03 16:36, 17F

12/03 16:36, , 18F
沒被呼叫到可能是B裡面的東西被其他物件持有釋放不了
12/03 16:36, 18F

12/04 13:00, , 19F
test
12/04 13:00, 19F
文章代碼(AID): #1MNSRmdO (MacDev)
討論串 (同標題文章)
文章代碼(AID): #1MNSRmdO (MacDev)