2011-12-13 106 views
0

確定我已經宣佈NSMutableData在類別1的.H如隨後從另一個類

NSMutableData * dataResponse訪問NSMutableData;

@property(strong,nonatomic)NSMutableData * dataResponse;

在類1的.m我有@synthezie dataResponse,然後我給它一些函數中的數據。

我想訪問我已經在函數中分配給它的那些數據在類2中的dataResponse。

如何從第2課的dataResponse中獲取數據?任何幫助都會很棒。

+0

呃,我想你需要一個指向該類**實例的指針**。你如何得到它取決於你。 –

回答

3

您可以使用助手類訪問不同類中的數組。在項目中創建一個NSObject文件。我把它命名爲傳遞

在你PassingClass.h

#import <Foundation/Foundation.h> 

@interface PassinClass : NSObject 
{ 
    NSMutableData *dataResponsetoPass; 
} 
+(PassinClass*)sharedString; 


-(void)setdataResponsetoPass:(NSMutableData*)data; 
-(NSMutableData*)getDataResponse; 

在你PassinClass.m

#import "PassinClass.h" 

@implementation PassinClass 
@synthesize dataResponsetoPass; 
static PassinClass*sharedString; 

+(PassinClass*)sharedString 
{ 
if(!sharedString) 
{ 
    sharedString=[[PassinClass alloc]init]; 
    } 

    return sharedString; 
} 


-(void)setdataResponsetoPass:(NSMutableData*)data 
{ 
    dataResponsetoPass=data; 
} 
-(NSMutableData*)getDataResponse; 
{ 
    return dataResponsetoPass; 
} 

在你class1.h創建這個輔助類的實例。

#import "PassinClass.h" 
{ 
    PassinClass*pClass; 
} 

在你class1.m,設置使用

pClass=[PassinClass sharedString]; 
[pClass getDataResponse]; 

的NSLog的[pClass getDataResponse ]檢查使用

pClass=[PassinClass sharedString]; 
[pClass setdataResponsetoPass:Your Data]; 

在你class2.m獲取數據的數據,如果一切順利您應該可以將響應數據從1級傳遞到2級。

+0

這基本上是一個「單身」 - 搜索這個詞,你會發現很多「模式」。處理全局數據的另一種常見方法是使用AppDelegate對象中的屬性。當然,如果可能的話,最好將對象地址作爲參數傳遞。 –

+0

@HotLicks是的,你是對的,這是一個單身人士,我也通過appdelegate對象完成了它,但經過一些研究後被稱爲「不潔」方法。這段代碼不會做他的工作嗎?或者有沒有更好的方法? – iNoob

+0

關於使用AppDelegate沒有任何「不清楚」。有些勢利克斯不喜歡使用它,但主要是因爲他們沒有適當的維護紀律。就單身而言,由於我很少使用它們,我還沒有確定一個首選的「模式」。 –

-1

創建一個ins類的類型並使用-mutableByes方法。如果你仍然需要更多的信息,請查看NSMutableData的類參考,右邊 here

+0

創建類的新實例不會返回已設置的值,而是返回nil。 –

+0

我不相信我的回答應該得到一票否決......如果你知道如何使用你的優勢的答案,你可以解決你的問題:P – Monkeyanator