作者monomorium (旅人的足迹)
看板MacDev
标题[问题] 命令列可顺利执行,但GUI无法顺利执行
时间Sun Jul 15 22:13:01 2012
这个程式是要用来当教学文章的范例
可是有个问题研究许久不知道改怎麽解决的问题
使用 Mac 10.5.8 与 Xcode 3.1.4
程式码如下网页(发展过程中档案,非最终版本)
http://pydoing.blogspot.tw/2012/07/blog-post.html
利用 Interface Builder 建立的介面如第一张图
有五个程式档案
demo.m 是在命令列测试 Encrypt.h 与 Encrypt.m
GUI 则是用 EncryptController.h 与 EncryptController.m
程式均可顺利编译, demo.m 可以顺利执行跑出结果
可是 GUI 在执行 - (IBAction) encode: (id)sender;
之时,无法顺利执行,也就是说
GUI 执行 Encrypt 的 toEncode 发生错误
(彩球空转,像是程式当掉,没有错误讯息 >_<)
想请教前辈,这到底是什麽样的错误?
或着说,从一开始我的设计方式就是错的?
ps:
此程式的 Java 版本可参考
http://pydoing.blogspot.tw/2011/05/java-guide.html
--
半个月工作,半个月旅行,自由自在的生活
简简单单就好,不必想得太复杂.......
欢迎来到
http://kaichingchang.blogspot.com/《旅人的足迹》
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.169.145.214
※ 编辑: monomorium 来自: 118.169.145.214 (07/15 22:16)
1F:推 Blueshiva:错误讯息? 07/15 22:26
2F:→ monomorium:彩球空转,没有错误讯息 >_< 07/15 22:28
※ 编辑: monomorium 来自: 118.169.145.214 (07/15 22:33)
3F:推 kiii210:该不会IBAction没连好.. 07/15 22:48
4F:推 Blueshiva:Action没连是完全没反应,连到错的method应该会当掉,彩 07/15 22:51
5F:→ Blueshiva:球一直转感觉是无限回圈 @.@ 07/15 22:52
我也觉得是无限回圈,可是命令列又可以顺利执行
※ 编辑: monomorium 来自: 118.169.145.214 (07/15 23:01)
6F:推 kiii210:有试过breakpoint吗 07/16 00:11
基本上 Debugger 视窗指出最後 EncryptController.m 执行停在
NSString *other = [encrypt toEncode: inputText];
也就是 Encrypt.m 的
r = [r stringByAppendingString: [cArray objectAtIndex: ct - 97]];
这跟反覆测试後,预测错误发生点是一样的
至於 Breakpoints 视窗,没有提示讯息,目前还不太懂作用说 xd
7F:推 peacedove:会不会是@property的问题,造成有些东西还没用就release? 07/16 14:19
8F:→ peacedove:我不确定,猜的 07/16 14:19
9F:→ peacedove:还有我不是很确定,不过你的carray, oarray不需要alloc嘛 07/16 14:21
我把 setArray 修改成
- (void) setArray {
oArray = [[NSArray alloc] initWithObjects:
@"a", @"b", @"c", @"d", @"e", @"f", @"g",
@"h", @"i", @"j", @"k", @"l", @"m", @"n",
@"o", @"p", @"q", @"r", @"s", @"t", @"w",
@"v", @"u", @"x", @"y", @"z", nil];
cArray = [[NSMutableArray alloc] initWithCapacity: 26];
int i, d, ci, count, m;
for (i = 0, count = self.c;i < n;i++) {
ci = count;
d = ci * self.a + self.b;
m = d % self.n;
[cArray addObject: [oArray objectAtIndex: m]];
count++;
}
}
成功跑出结果了,感谢各位 :)
※ 编辑: monomorium 来自: 118.169.133.163 (07/16 15:04)
※ 编辑: monomorium 来自: 118.169.133.163 (07/16 15:53)
※ 编辑: monomorium 来自: 118.169.133.163 (07/16 15:59)
10F:推 Blueshiva:alloc用完之後要release掉喔... 07/16 17:04
11F:推 peacedove:arc的话不能自己写release吧@@ 07/20 13:26
arc 好像是 xcode 4.2 以後才能用
这里有个问题,在 autorelease pool 中有需要 release 吗
还是 autorelease 就可以了?
或是连 autorelease 也不需要?
另外一个问题是,嗯,我改回不用 alloc 突然也可以用了 xd
※ 编辑: monomorium 来自: 118.169.142.117 (07/20 14:38)
12F:推 peacedove:arc应该是4以後就有了 没注意到你用3 07/20 23:49