如果我读到Mike Ash的"归零弱引用"文章是正确的,那么弱引用就像assign没有ARC的引用一样.但是,如果引用的对象被释放,而不是获得"悬空指针"(意味着指向解除分配的对象的指针),则指针将设置为nil.
这是正确的吗,这是否会在标记的任何财产weak或assign(当ARC处于活动状态时)发生?
如果这是正确的,这将消除很多SIGABRT.
当尝试使用-retain,-release并-dealloc在使用Xcode 4.2中的自动引用计数构建我的应用程序时,我收到如下错误:
自动引用计数禁止'dealloc'的显式消息发送
为什么我看到这个错误?在自动引用计数下是否-retain,-release并且-dealloc不再允许这样做?
在我更新到Xcode 4.2后,我无法再发布任何内容.当我开始键入"release"时,它会建议"释放",但是会有一条红线.
如果我写它仍然显示错误并显示以下两条消息:
'release'不可用:在自动引用计数模式下不可用自动引用计数禁止显式消息发送'release'
有谁知道我能做什么?
我正在使用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
我发现这篇文章是关于从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错误,如:
有人知道为什么吗?JSON Framework是否与最新的Xcode不兼容?
我目前正在尝试自学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方法,但同样,我的困惑是为什么这个函数需要一个数组.
我已经阅读了文档,但我真的在寻找一个简单的解释.
任何帮助深表感谢
我在网上看到,当我创建一个对象时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) 何时发布了发布方法?当我完成它时,我总是释放内存分配,现在看来该方法已被弃用.或者它可能不适用于某些对象?
无论如何,这就是我做的:
Customer *aCustomer = [[Customer alloc] init];
...
[aCustomer release];
Run Code Online (Sandbox Code Playgroud)
我在那里得到一个错误...任何人都在意解释为什么我发现错误,因为我释放了我的记忆?错误消息是:
'release'in unavailable:在自动引用计数模式下不可用ARC禁止显式消息发送'release'