我知道當所有對象都是Objective C類型對象時,NSDictionary可以用來從方法返回多個東西,但是有沒有辦法打包非目標對象C?從方法中返回多個非Objective C對象/變量
我有一個方法,我需要返回一個int和IplImage。如果不將IplImage轉換爲NSValue(我不知道該怎麼做並希望避免),我可以從方法返回2個項目嗎?
還要注意,這個方法被定義在一個單獨的類中,因此我不認爲我可以使用類變量來存儲int(或者我可以?)。
謝謝。
我知道當所有對象都是Objective C類型對象時,NSDictionary可以用來從方法返回多個東西,但是有沒有辦法打包非目標對象C?從方法中返回多個非Objective C對象/變量
我有一個方法,我需要返回一個int和IplImage。如果不將IplImage轉換爲NSValue(我不知道該怎麼做並希望避免),我可以從方法返回2個項目嗎?
還要注意,這個方法被定義在一個單獨的類中,因此我不認爲我可以使用類變量來存儲int(或者我可以?)。
謝謝。
這種方法將簡單的情況下工作,我相信你已經看到了:
- (BOOL)caclulate:(NSError**)outError;
它返回一個BOOL
和NSError
。
要返回int
:
- (BOOL)caclulate:(int*)outInt;
使用這種方法,你可以宣佈你的方法是這樣的:
- (int)calculate:(IplImage*)outImage;
,然後調用者的代碼採用以下形式:
IplImage outImage;
int result = [object calculate:&outImage];
簡答題:沒有。
常用的方法是你所描述的,使用NSDictionary。不幸的是,這意味着使用非標準類型的NSValue(NSNumber等)。
或者你可以使用類似於大多數方法與NSError一起工作的輸入/輸出參數。
如果NSError**
解決方案並不爲你工作,你可能想創建一個幫助struct
持有兩個int
和IplImage
:
typedef struct _Data {
int num;
IplImage image;
} Data;
,然後通過它周圍。
我不確定我是否理解,那麼IplImage返回到哪裏? –
@ user901505回答擴展 – justin