Re: [問題] C 與 Objective-C

看板MacDev作者 (蛙哥)時間12年前 (2012/10/02 23:37), 編輯推噓2(204)
留言6則, 4人參與, 最新討論串3/4 (看更多)
※ 引述《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

10/02 23:57, , 1F
在label顯示字根本不是問題 你要不要先接觸之後再來問呀
10/02 23:57, 1F

10/03 00:08, , 2F
如果要用Apple的framework,基本都要學Obj-C吧...
10/03 00:08, 2F

10/03 00:08, , 3F
何況現在的Obj-C已經比以前親切很多了....
10/03 00:08, 3F

10/03 06:21, , 4F
呃,你C真的夠熟嗎?我都說是要吃一個"C string"了
10/03 06:21, 4F

10/03 06:22, , 5F
當然是用sprintf弄出const char* 然後再餵給NSString...
10/03 06:22, 5F

10/03 10:55, , 6F
謝謝大家的教訓及建議 >0< 我在自己努力鑽研一下
10/03 10:55, 6F
文章代碼(AID): #1GQmfAXv (MacDev)
討論串 (同標題文章)
本文引述了以下文章的的內容:
以下文章回應了本文
完整討論串 (本文為第 3 之 4 篇):
文章代碼(AID): #1GQmfAXv (MacDev)