gpt4 book ai didi

xcode - NSMutableData setLength :NSUInteger crashing the app

转载 作者:行者123 更新时间:2023-12-03 17:35:09 29 4
gpt4 key购买 nike

尝试创建请求与 URL 的连接。 NSMutableData 实例(responseData)也会随之被调用。当连接开始接收响应时,将在 NSMutableData 实例上调用 setLength:NSUInteger 方法。

-(void)startDataDownloading
{
NSURLRequest *_request = [NSURLRequest requestWithURL:self.url];
if (_request) {
if (!connecton) {
connecton = [NSURLConnection connectionWithRequest:_request delegate:self];
if (connecton) {
responseData = [NSMutableData data];
[connecton start];
}
}
}
}

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
[responseData setLength:0];
}

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
[responseData appendData:data];
}

但不知何故,它会导致崩溃并在 setLength 调用上发出警告。错误指出

"-[__NSCFDictionary setLength:]:无法识别的选择器发送到实例 0x6a8cf702012-11-30 18:00:38.948 RSSReader[8997:f803] * 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[__NSCFDictionary setLength:]:无法识别的选择器发送到实例 0x6a8cf70 ' "

任何有关此的提示将不胜感激。

#import <Foundation/Foundation.h>
#import "DataParser.h"

@protocol DataConnectionDelegate <NSObject>
//protocol methods
@end
@interface UCDataConnection : NSObject <ModelParser>
@property (nonatomic, strong) NSURL *url;
@property (nonatomic, strong) NSURLConnection *connecton;
@property (strong, nonatomic) NSMutableData *responseData;
@property (nonatomic, assign) id<DataConnectionDelegate> delegate;
-(void)startDataDownloading;
- (id)initWithUrl:(NSURL *)_url andDelegate:(id<DataConnectionDelegate>)_delegate;

这是头文件的一部分。抱歉回复晚了。

最佳答案

很可能您没有正确保留responseData,因此它正在被释放,并且在上面的示例中您碰巧最终在同一位置分配了一个NSDictionary。

如果您使用 ARC,那么您发布的代码就没有问题(除了“responseData”可能应该有一个下划线前缀,假设它是一个实例变量)。

如果您使用retain-release,那么您需要在分配responseData时添加对retain的调用。

更新:根据您的头文件,您似乎直接引用实例变量并使用保留释放。最好的选择是仅通过属性机制引用responseData - 即在其所有用途前加上self.前缀。

关于xcode - NSMutableData setLength :NSUInteger crashing the app,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13645609/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com