Iphone NSURLConnection保存变量不起作用
我正在发出一个异步url请求 在委托函数ConnectionIDFinishLoading中,我将服务器的响应分配给实例变量 我在提出请求后等待了几秒钟,我确信我已经收到了响应 我有一个按钮链接到一个iAction,它将这个变量输出到NSLog,但它总是空的 我不知道发生了什么事。url请求是否启动了一个新线程,并且保存的任何变量在主线程中都不可访问。。。或者为什么我根本看不到任何保存的变量 我可以在ConnectionIDFinishLoading中正确地使用接收到的数据,但是当我将这些数据分配给实例变量并尝试在函数外部访问它们时,它们总是空的 TL;博士 我究竟该如何保存响应或url请求以供以后使用Iphone NSURLConnection保存变量不起作用,iphone,nsurlconnection,nsurlrequest,Iphone,Nsurlconnection,Nsurlrequest,我正在发出一个异步url请求 在委托函数ConnectionIDFinishLoading中,我将服务器的响应分配给实例变量 我在提出请求后等待了几秒钟,我确信我已经收到了响应 我有一个按钮链接到一个iAction,它将这个变量输出到NSLog,但它总是空的 我不知道发生了什么事。url请求是否启动了一个新线程,并且保存的任何变量在主线程中都不可访问。。。或者为什么我根本看不到任何保存的变量 我可以在ConnectionIDFinishLoading中正确地使用接收到的数据,但是当我将这些数据分
提前感谢。问题可能是您没有保留内存,因此会自动释放内存。您正在分配的实例变量是否是指定了retain或copy的属性?设置对象后,也可以手动调用对象本身的retain:
[myString retain];
使用属性是更好的管理方式,例如。H:
@interface MyClass: Object {
NSString *myString;
}
@property (nonatomic, retain) NSString *myString;
在.M中的其他地方:
@synthesize myString
...
...
self.myString = ...
这可确保在您想要执行以下操作之前不会释放字符串:
[myString release];
self.myString = NULL;
…为什么不将NSLog放入ConnectiondFinishLoading方法中?因为听起来您所做的一切都是将响应分配到委托方法中的变量中,而不是记录任何内容。显然,在这里看到一些代码会有所帮助,但“确定”与“毫无疑问”并不相同。谢谢您的回复。代码分布在多个类中,我认为这是非常不清楚的。我将尽力解释:现在我正在将它记录在代表中,这就是我如何知道我收到了正确的数据。当我将数据保存到一个实例变量并在以后尝试访问它时,就会出现问题……它总是空的。谢谢