MacDev 板


LINE

※ 引述《Elfiend (小孩)》之铭言: : 我知道的: : 呼叫已经free掉的物件必定会crash掉。 : 例如某个button的TouchUpInside事件里, : { : UIViewController *pView; : [self presentViewController:pView animated:YES completion:nil]; : } : 因为pView只存在这个function里, : 去执行presentViewController就会造成crash。 : 因为当view didload时,该view就被free了。 错, 正确原因是 pView 未初始化 UIViewController *pView; 只会宣告指标变数 你没告诉它要指向哪里, 也没初始化它指向的记忆体 当你存取它的时候就是乱存取别人的资料, 跟闯空门是一样的行为, 当然程式就死给你看 如果你有正确初始化, 在不使用 ARC 或垃圾处理的状况下 其实我猜 (没测) 光这样并不会 crash (当然现在是另一回事, 会不会有合理行为是另一回事, 以後会不会有其他问题又是...) : 解决的方式是在.h档里宣告全域变数,这样才不会执行完button事件, : ViewController就被free掉了。 那也要你有正确初始化才行 没初始化的话在 ARC 设定中会自动 zero-out 我记得 presnt nil view controller 是会 crash 的... : 我不知道的: : 若档案A里,有button event会presentViewController 档案B, : 而档案B里,也有button event会presentViewController 档案C, : (就是A->B->C) : 此时档案C里,有button event会直接返回档案A, : [self.presentingViewController.presentingViewController dismissModalViewControllerAnimated:YES]; : 档案B跟C有使用AVPlayer,在画面一直切换的情况下, : 可能会在档案B的presentViewController那行Crash, : 也可能会在档案C,dismiss那行Crash, : 这种不稳定的状况,发生原因可能是什麽? : 因为dissmiss造成memory leak吗? : 在拥有实机,可以看到error msg,以及machine code的情况, : 我可以检查什麽来判断问题? 我觉得你需要找一本正规的 Cocoa/Cocoa Touch 教学, 不然你这样抓虫抓不完的 没把 C 指标与记忆体概念, 以及 OS X/iOS 记忆体管理的逻辑搞懂 就算有好的 debugger, 你每天 debug 就饱了... 我要顺便藉这篇文章 rant 一下 nil 是给 Objective-C object 空指标用的, 一般的空指标请使用 NULL 当然在实作中两个其实都是 0, 这是语意的问题 所以请写 [self presentViewController:vc animated:YES completion:NULL]; [data writeToURL:aURL options:0 error:NULL]; 後面那个例子, options 参数是一个 bitmask, 所以用 0 比 NULL 好 而 error 的型态是 NSError **, 所以要用 NULL 注意 NSError 是一个 Objective-C class, 所以 NSError *e = nil; 是对的 但是如果是 NSError ** 则要使用 NULL (其实传 NULL 进去 error 参数本身就是很欠揍的行为, 不过这里只是拿来当例子) 然後我从来不知道用 Nil 的人到底是从什麽鬼地方学来的 -- ╱ ̄ ̄ ̄╲ ▏◢█◣ 成龙表示: 是喔... ′/ ‵ ╰╯ ψQSWEET █◤ --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.94.61
1F:推 kiii210:完了,我都用nil... 08/07 15:43
2F:推 roxx:推一下 nil, NULL, 0 08/07 16:11
3F:→ hSATAC:http://nshipster.com/nil/ 08/07 17:09
4F:→ uranusjr:所以 Nil 是 pointer to class object, 多学了, 感恩 08/07 17:27
5F:→ nobody1:推 08/07 18:25
6F:推 NelsonT:completion是object,应该用nil比较符合语意喔 08/11 22:14







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:iOS站内搜寻

TOP