Objective c NSURLConnection导致错误的\u访问

Objective c NSURLConnection导致错误的\u访问,objective-c,Objective C,当试图在从视图控制器调用的类中实例化NSURLConnection时,我获得了BAD\u访问权限 我在类中实现了委托方法,接口是NSObject的子类 我一辈子都搞不清楚问题出在哪里: NSURL *url = [NSURL URLWithString:@"http://valid-value-here"]; NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init ]; [request setURL:url]; [req

当试图在从视图控制器调用的类中实例化
NSURLConnection
时,我获得了
BAD\u访问权限

我在类中实现了委托方法,接口是
NSObject
的子类

我一辈子都搞不清楚问题出在哪里:

NSURL *url = [NSURL URLWithString:@"http://valid-value-here"];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init ];
[request setURL:url];
[request setHTTPMethod:@"POST"];

[request addValue:@"application/json;chartset=utf-8" forHTTPHeaderField:@"Content-Type"];
NSString *myJSONString = @"valid-json-string";
NSData *myJSONData = [myJSONString dataUsingEncoding:NSUTF8StringEncoding];
NSUInteger cCount = [myJSONString length];
[request addValue:[NSString stringWithFormat:@"%d", cCount] forHTTPHeaderField:@"Content-Length"];


[request setHTTPBody:myJSONData];

NSURLResponse *theResponse = [[NSURLResponse alloc]init];
NSError *theError = nil;

NSURLConnection *theConnection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
当代码到达上面的最后一行时,会发生异常

我大部分时间都是.Net开发人员,所以我对XCode的熟悉程度还不到标准,而且我对Objective-C也比较陌生,所以非常感谢您的帮助

编辑

以下是已启用僵尸的输出:**-[AccountApi登录:密码:onSuccess:onFail::]:消息发送到解除分配的实例0x71427c0

这就是这个
NSURLConnection
所在的方法。它被称为通过:

loginApi = [[AccountApi alloc] init];

[loginApi Login: @"" password:@"" onSuccess:^{} onFail:^{}];
loginApi
声明为
AccountApi*loginApi@实现
上方的code>

编辑2 我已通过以下方式将对
AccountApi
的引用声明为实例变量:

@implementation LoginViewController {
AccountApi *lApi;
}
然后在函数中:

- (void)callApi
{

    lApi = [[AccountApi alloc] init];

    NSString *login = userLogin.text;

    NSString *pass = userPassword.text;

    [lApi Login: login password: pass onSuccess:^{
        [self successBlock];  // For example...
    } onFail:^{
        [self failBlock];  // For example...
    }];

}
这会立即产生: *-[AccountApi登录:密码:onSuccess:onFail:]:消息发送到解除分配的实例0x7154ba0

编辑3 我已经确认,
lApi
到达
Login
呼叫时已经是僵尸了。它是如何从以下三行代码中解除分配的:
lApi=[[AccountApi alloc]init]呼叫

已解决
AccountApi
中,我的init缺少了一些内容……呃: 是:

应该是:

- (id)init {
return self;
}

它应该是
nsuiger-cCount=[myJSONData-length]因为UTF-8字节数可能与字符串长度不同。“chartset=utf-8”中有一个输入错误。有时这表示对象被过度释放,但也可能是由各种错误引起的。是吗?你的错误不在你发布的代码中;这运行正常。看起来在调用成功/失败块时,
loginApi
已解除分配。尝试在属性或实例变量中存储
loginApi
。NSURLConnection将保留其委托,直到连接完成,因此我想知道如何释放该实例。
- (id)init {
return self;
}