作者r0931265515 (蛙哥)
看板MacDev
标题Re: [问题] C 与 Objective-C
时间Tue Oct 2 23:37:44 2012
※ 引述《dryman (dryman)》之铭言:
: ※ 引述《r0931265515 (蛙哥)》之铭言:
: : 小弟不才 最近要将 C 的程式码移接到 Xcode 上,并且在 ipod 上做实机测试,
: : 坦白说我用 C 撰写能力比较强,所以刚开始来到 Xcode 上的专属 Objective-c 我是真的
: : 看不太懂,虽然也懵懵懂懂用了几个范例来操作看看,例如很简单的按钮、Label显示,我
: : 对Xcode的了解就只有这样....後来没有深入了解其他的功能,是因为 C 也可以在上面编
: : 译并可以 WORK 。
: 我对你开发的建议是,首先先确定C code真的可以work
: 反正printf还是会印到console上
: 毕竟你要移植的C才是你软体的主体
: iOS平台可能不一定跟你原本的环境完全契合
: 例如许多library只能static link...
: 对obj-c不熟的话,开一个single view application template
: 直接在main.m里面贴上你的程式
恩 是可以WORK的 我是直接改一个范例 就是比较简单的 有按钮及显示Label的功能
而我的作法是 按钮按下去 执行我的 C code 确定有work是在我的 xcode 的
console 上我有写个printf的指令 并且有去跟我的PC数据做比较是相同的
: : 重点来了,Xcode 可以看做是一个开发软体,而 C 是最基本的程式语言,当然是可
: : 以使用,不过到头来如果要在 Device 上显示一些结果或文字还是需要用到 objectiveC,
: : 那为什麽一开始这些开发软体就直接指定"程式语言"不就好了吗 ? 就像 MATLAB 这样...
: : 我是真的想知道这样的关系
: : 希望大家能给我一些帮助好让我了解这些东西的差别
: Objective-C 是C的变形,可以直接在Objective-C里面写C
: 你可以想像成它是C的macro+runtime
: 所有的objective-c的物件其实都是struct+runtime组成的
: 所以它比C++还更接近C
: C++你还需要用extern "C"来界定哪部分是C哪部分是C++...
: : 因为现在遇到的问题就是,我想在 C 函式里直接控制 Device 上的 label 显示结果,
: : 一直没有头绪要怎麽用,所以才想了解以上这些东西的观念,好让自己有动力
: : 去看 objectiveC !
: : 感谢各位了 !
: 我想你需要去买本书学objective-c
: 我建议去买Big Nerd Ranch: iOS programming guide
: 这是目前我看过众多ObjC的书中讲得清楚又不会太难的书
恩 好的 感谢您的建议 !
: 先爆个雷,你可以用
: [NSString stringWithCString:my_c_string encoding:NSASCIIStringEncoding];
: 来产生NSString
: 然後再用myLabel.text = myNSString; 来改变label
: label记得设定成是多行:
: myLabel.lineBreakMode = NSLineBreakByWordWrapping;
: myLabel.numberOfLines = 0; // No limits
: 也许凭着以上这些你就可以显示文字了
: 但还是买那本书把objc搞熟比较实际
: 你看看objc在tiobe上面都冲到第三名了
: 还不快学?XD
这样的方法 就能从我的C code 原本 printf 出来的结果 显示在 device 的 label
上吗? 因为一直没有头绪 要怎麽连到 ObjC 的函示
详细来说 我做的一个 是有两个按钮(开始 及 结束)的和一个显示的Label 现在
就是确定我跑完我的 C code 後 要直接连到 结束按钮能做的事 并不需要我去手动
方式来做结束 又能 显示 结束按钮会显示出来的文字 一直没有头绪 QQ
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 123.241.196.90
1F:推 tentenlee:在label显示字根本不是问题 你要不要先接触之後再来问呀 10/02 23:57
2F:→ leondemon:如果要用Apple的framework,基本都要学Obj-C吧... 10/03 00:08
3F:→ leondemon:何况现在的Obj-C已经比以前亲切很多了.... 10/03 00:08
4F:推 dryman:呃,你C真的够熟吗?我都说是要吃一个"C string"了 10/03 06:21
5F:→ dryman:当然是用sprintf弄出const char* 然後再喂给NSString... 10/03 06:22
6F:→ r0931265515:谢谢大家的教训及建议 >0< 我在自己努力钻研一下 10/03 10:55