相关疑难解决方法(0)

在ARC中归零弱引用

如果我读到Mike Ash的"归零弱引用"文章是正确的,那么弱引用就像assign没有ARC的引用一样.但是,如果引用的对象被释放,而不是获得"悬空指针"(意味着指向解除分配的对象的指针),则指针将设置为nil.

这是正确的吗,这是否会在标记的任何财产weakassign(当ARC处于活动状态时)发生?

如果这是正确的,这将消除很多SIGABRT.

objective-c clang automatic-ref-counting

44
推荐指数
1
解决办法
1万
查看次数

在自动引用计数下,为什么不允许保留,释放和释放?

当尝试使用-retain,-release-dealloc在使用Xcode 4.2中的自动引用计数构建我的应用程序时,我收到如下错误:

自动引用计数禁止'dealloc'的显式消息发送

为什么我看到这个错误?在自动引用计数下是否-retain,-release并且-dealloc不再允许这样做?

objective-c automatic-ref-counting

39
推荐指数
1
解决办法
3万
查看次数

为什么我不能再释放一个物体了?

在我更新到Xcode 4.2后,我无法再发布任何内容.当我开始键入"release"时,它会建议"释放",但是会有一条红线.

如果我写它仍然显示错误并显示以下两条消息:

'release'不可用:在自动引用计数模式下不可用自动引用计数禁止显式消息发送'release'

有谁知道我能做什么?

objective-c automatic-ref-counting

26
推荐指数
1
解决办法
4万
查看次数

ARC禁止明确发送"保留"问题的消息

我正在使用Apple指南中的这个非常简单的代码:

NSMutableData *receivedData;

// Create the request.
NSURLRequest *theRequest=[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.apple.com/"]
                        cachePolicy:NSURLRequestUseProtocolCachePolicy
                    timeoutInterval:60.0];
// create the connection with the request
// and start loading the data
NSURLConnection *theConnection=[[NSURLConnection alloc] initWithRequest:theRequest delegate:self];
if (theConnection) {
    // Create the NSMutableData to hold the received data.
    // receivedData is an instance variable declared elsewhere.
    receivedData = [[NSMutableData data] retain];
} else {
    // Inform the user that the connection failed.
}
Run Code Online (Sandbox Code Playgroud)

但是对于receivedData = [[NSMutableData data] retain];Xcode 行我给出了一个错误:PushController.m:72:25: ARC forbids explicit …

xcode cocoa memory-management objective-c automatic-ref-counting

12
推荐指数
1
解决办法
3万
查看次数

Objective-C:如何阅读JSON?

我发现这篇文章是关于从iOS请求的URL请求中解析JSON响应:http://www.raywenderlich.com/2965/how-to-write-an-ios-app-that-uses-a-web-service.

本文使用JSON Framework.我从网页上下载了最新的"SBJson_v3.0.4.zip"并将其拖入我项目中的新组.但是然后构建返回62错误,如:

  • ARC禁止"发布"的显式消息发送
  • 对于unsafe_unretained属性'delegate'的现有ivar'委托'必须是__unsafe_unretained
  • 'retain'不可用:在自动参考计数模式下不可用

有人知道为什么吗?JSON Framework是否与最新的Xcode不兼容?

json objective-c ios

3
推荐指数
1
解决办法
2746
查看次数

在Objective-C中对数组进行排序

我目前正在尝试自学Objective-C并正在玩一个我需要对数组进行排序的练习.

我设法使用以下代码完成它:

NSSortDescriptor * newSortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"title" ascending:TRUE];
NSArray *sortDescriptors = [NSArray arrayWithObject:newSortDescriptor];
[self.theBookStore sortUsingDescriptors:sortDescriptors];
Run Code Online (Sandbox Code Playgroud)

我的问题是关于这里发生的事情.我真的不明白我做了什么.

第1行:我在这里理解我已经创建了一个具有描述符的新对象.这有两个参数,我想要排序的列,它是升序的.

第2行:这是我感到困惑的一句话.为什么我需要一组排序描述符?当我读到这段代码时,我怀疑它创建的数组中只有一行是正确的吗?

第3行:我知道这是在调用sortUsingDescriptors方法,但同样,我的困惑是为什么这个函数需要一个数组.

我已经阅读了文档,但我真的在寻找一个简单的解释.

任何帮助深表感谢

iphone objective-c ios

3
推荐指数
1
解决办法
681
查看次数

iOS 5 NSString版本不可用

我在网上看到,当我创建一个对象时alloc,init我必须释放它(甚至一个NSString),所以:

为什么我这样创建NSString:

NSString *prova = [[NSString alloc] init];
[prova release];
Run Code Online (Sandbox Code Playgroud)

我收到这些错误:

'release'不可用:在自动参考计数模式下不可用

ARC禁止"发布"的显式消息发送

[prova release]消息上?我尝试这样做时没有错误:

NSString *prova = [[NSString alloc] init];
NSLog(@"Contenuto 0 di prova: %@", prova);
prova = @"prima prova stringa";
NSLog(@"Contenuto 1 di prova: %@", prova);
prova = @"ma cosè questo fantomatico errore";
NSLog(@"Contenuto 2 di prova: %@", prova);
Run Code Online (Sandbox Code Playgroud)

iphone ios5 xcode4.2

2
推荐指数
1
解决办法
2356
查看次数

不推荐使用release方法

何时发布了发布方法?当我完成它时,我总是释放内存分配,现在看来该方法已被弃用.或者它可能不适用于某些对象?

无论如何,这就是我做的:

Customer *aCustomer = [[Customer alloc] init];
...
[aCustomer release];
Run Code Online (Sandbox Code Playgroud)

我在那里得到一个错误...任何人都在意解释为什么我发现错误,因为我释放了我的记忆?错误消息是:

'release'in unavailable:在自动引用计数模式下不可用ARC禁止显式消息发送'release'

iphone objective-c ios5 automatic-ref-counting

2
推荐指数
1
解决办法
1965
查看次数

哪些iOS版本可以让您在不手动管理内存的情

可能重复:
有关iOS5 SDK中自动引用计数的一些问题

嗯,就是这样.

有人支持自动垃圾收集吗?哪个?

哪些iOS版本可以让您自己开发而无需管理内存?(即仅使用自动垃圾收集)

memory-management ios

0
推荐指数
1
解决办法
102
查看次数