作者boy19931118 (boy19931118)
看板MacDev
標題[問題]ARC下 內存崩潰
時間Wed Dec 2 00:12:29 2015
小弟近期在撰寫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
→ shinrenpan: 只回答1,B是否有 block retain cycle 問題 12/02 00:43
→ hearther: 太多中國用語看不懂 物件? 計數器? 12/02 01:50
→ hearther: Extern我也看不懂是啥?不是c 才有extern嗎? 12/02 01:52
→ LFimi: 3.在prepareForSegue傳值給segue.dest的 public property 12/02 09:30
→ LFimi: 啊 , 你是兩個storyBoard 12/02 09:31
→ kyo017baby: 好多中國用語,看無 ... 12/02 09:56
推 abcdefghi: 只有 '內存' 是中國術語吧,其他的台灣也很常用 12/02 10:26
推 darktt: 1. B沒釋放是有可能他裡面的物件沒正確的釋放導致的 12/02 11:00
→ boy19931118: 可能是查中國資訊的關係 抱歉 extern我也是上網查到 12/02 11:41
→ boy19931118: 可以使用 但是希望能夠正規一點 不要亂用 12/02 11:41
→ boy19931118: darktt 因為是在ARC下 不能release 只能將有alloc的o 12/02 11:42
→ boy19931118: j=nil 這樣算釋放? 12/02 11:42
推 darktt: 是,就只能這麼做 12/02 13:05
推 EQQD: Swift向你招手 12/02 19:17
推 sdcomputer: 1. 如darktt大所說 2.看不懂 3.我的話會用delegate 12/02 21:53
推 otaku5566: 2問的是property attribute? 12/03 03:40
→ tom19830924: 在B裡面寫dealloc看有沒有被呼叫到看看 12/03 16:36
→ tom19830924: 沒被呼叫到可能是B裡面的東西被其他物件持有釋放不了 12/03 16:36
→ boy19931118: test 12/04 13:00