作者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://webptt.com/cn.aspx?n=bbs/MacDev/M.1448986352.A.9D8.html
1F:→ shinrenpan: 只回答1,B是否有 block retain cycle 问题 12/02 00:43
2F:→ hearther: 太多中国用语看不懂 物件? 计数器? 12/02 01:50
3F:→ hearther: Extern我也看不懂是啥?不是c 才有extern吗? 12/02 01:52
4F:→ LFimi: 3.在prepareForSegue传值给segue.dest的 public property 12/02 09:30
5F:→ LFimi: 啊 , 你是两个storyBoard 12/02 09:31
6F:→ kyo017baby: 好多中国用语,看无 ... 12/02 09:56
7F:推 abcdefghi: 只有 '内存' 是中国术语吧,其他的台湾也很常用 12/02 10:26
8F:推 darktt: 1. B没释放是有可能他里面的物件没正确的释放导致的 12/02 11:00
9F:→ boy19931118: 可能是查中国资讯的关系 抱歉 extern我也是上网查到 12/02 11:41
10F:→ boy19931118: 可以使用 但是希望能够正规一点 不要乱用 12/02 11:41
11F:→ boy19931118: darktt 因为是在ARC下 不能release 只能将有alloc的o 12/02 11:42
12F:→ boy19931118: j=nil 这样算释放? 12/02 11:42
13F:推 darktt: 是,就只能这麽做 12/02 13:05
14F:推 EQQD: Swift向你招手 12/02 19:17
15F:推 sdcomputer: 1. 如darktt大所说 2.看不懂 3.我的话会用delegate 12/02 21:53
16F:推 otaku5566: 2问的是property attribute? 12/03 03:40
17F:→ tom19830924: 在B里面写dealloc看有没有被呼叫到看看 12/03 16:36
18F:→ tom19830924: 没被呼叫到可能是B里面的东西被其他物件持有释放不了 12/03 16:36
19F:→ boy19931118: test 12/04 13:00