2012-07-09 77 views
0

NSImage class reference據說存在方法initWithData,但爲什麼xCode說它不存在?NSImage initWithData未找到?

我用這樣的:

NSData *imgData = [[imageView image] TIFFRepresentation]; 
fotoImg = [NSImage initWithData:imgData]; 

,我也得到警告:

Class method '+initWithData:' not found (return type defaults to 'id') 

這究竟是爲什麼?

+0

'[[NSImage alloc] initWithData..' – 2012-07-09 13:32:31

回答

4

當您應該在該類的實例上調用該函數時,您正在調用initWithData。這樣做:[[NSImage alloc] initWithData:imgData];

瞭解成員函數和類函數(或以Obj C術語「消息」)之間的區別是非常重要的。我建議http://www.amazon.de/Programming-Objective-C-Automatic-Reference-Developers/dp/0321811909/ref=pd_sim_sbs_eb_1/276-1733140-9413556

+0

Objective-C中沒有「靜態方法」。他們是類方法和實例方法。通話始終是動態的。 – newacct 2012-07-09 19:48:08

+0

好吧,我糾正它。我不是說靜態的,而是動態的,但你是對的,這裏不是正確的術語。 – 2012-07-09 23:26:42

+0

上帝,我有這個問題,但與NSImage initWIthContentsOfFile,你真的爲我節省了很多時間。我正在從iOS的[UIImage imageWithContentsOfFile]中轉換代碼,並假設它可以工作,只是改變了類和方法的名稱。腦屁時刻,當然。希望如果任何人有同樣的問題,他們會看到這個評論。 – user3062913 2016-02-10 18:55:02