Re: [問題] class method

看板MacDev作者 (肉元,吉米,助教)時間14年前 (2010/10/24 15:12), 編輯推噓3(309)
留言12則, 3人參與, 最新討論串2/4 (看更多)
※ 引述《hothero (Ronald阿呈)》之銘言: : 不好意思第一次發文@@ : 現在情況是我最近在把一些function額外包成一個class : 但現在遇到一個問題是 : 我用物件call by reference(預設)的方式把我要做的物件(uiimage)傳過去 : 我額外包的class對他動點手腳 : 但是做完後我發現那個物件(uiimage)跟一開始的都一樣阿...... : 不管是用class/instant的method還是variable我都試過了 : 感覺像是我物件給過去處理的方式有問題... : 謝謝 其實call by reference我之前才問過XDD 其實我不太確定call by reference的definition是什麼 如果是說 int i = 1; function(&i); 這種"&i"的話obj-c沒有 但是如果你是要傳「物件」的pointer, 那其實大部分obj-c的物件變數就是一個pointer了 如果你是要一個mehtod接收物件然後做處理 可以這樣: 1. - (void)imageProcessing:(UIImage *)image { // localImage 與 image 指向同一個object UIImage *localImage = [image retain]; /*perform your image processing on localImage here...*/ [localIamge release]; } 2. - (UIImage *)imagePropcessing:(UIImage *)image { UIImage *localImage = [image copy]; /*perform your image processing on localImage here...*/ return [localImage autorelease]; } 不過根據Zonble大的描述UIImage似乎不適合做影像處理 我只能盡我所了解來提供幫助而已QQ 希望有幫助囉~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.248.14.135

10/24 16:45, , 1F
謝謝^^,已解決
10/24 16:45, 1F

10/24 17:13, , 2F
阿屋,我剛剛用第二個方法改成在background執行就無法了
10/24 17:13, 2F

10/24 17:14, , 3F
似乎background只接受void,改成第一個就失敗了...
10/24 17:14, 3F

10/24 17:14, , 4F
是因為我的method是class method(+)的關係嗎?
10/24 17:14, 4F

10/24 17:18, , 5F
你另外開一個 thread?
10/24 17:18, 5F

10/24 17:24, , 6F
是阿,因為想顯示progressBar
10/24 17:24, 6F

10/24 17:25, , 7F
如果真的沒辦法我就只好改用其他方式了@@
10/24 17:25, 7F

10/24 17:30, , 8F
nsobject的performSelectorInBackground就只能用void嗎?
10/24 17:30, 8F

10/24 18:20, , 9F
Method 寫定了就是那樣, Objective-C 沒有函數重載
10/24 18:20, 9F

10/24 19:53, , 10F
在開下一個 thread 的時候,程式就已經往下走了
10/24 19:53, 10F

10/24 19:53, , 11F
這樣要怎麼把東西 return 回來,用 callback 吧。
10/24 19:53, 11F

10/24 23:27, , 12F
請問z大,是說像notification的方式嗎??
10/24 23:27, 12F
文章代碼(AID): #1CmznJ3K (MacDev)
討論串 (同標題文章)
本文引述了以下文章的的內容:
1
9
以下文章回應了本文
完整討論串 (本文為第 2 之 4 篇):
3
12
1
9
文章代碼(AID): #1CmznJ3K (MacDev)