2011-12-13 100 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