草庐IT

objective-c - 自动引用计数下,为什么不允许retain、release、dealloc?

当在Xcode4.2中使用自动引用计数构建我的应用程序时尝试使用-retain、-release和-dealloc时,我收到如下错误:AutomaticReferenceCountingforbidsexplicitmessagesendof'dealloc'为什么我会看到这个错误?-retain、-release和-dealloc在自动引用计数下不再允许了吗? 最佳答案 基本上:使用ARC时,要么全有,要么全无。编译器要么为你管理所有的保留/释放/释放,要么什么都不做。你不能散布你自己对它们的调用,因为编译器想自己做这一切。它可以

objective-c - ARC : strong or retain? 的@property 定义

使用Xcode4.2和ARC,我注意到自动生成的NSManagedObject代码对于属性仍然是这样的:@property(nonatomic,retain)NSString*someString;1)现在不应该将retain替换为strong或weak吗?2)为什么自动生成的代码还是使用retain3)在此属性语句中,retain的正确替换是什么?我目前正在使用NSFetchRequest调试一个问题,我认为这可能是问题的根源。想法? 最佳答案 1)Shouldn'tretainnowbereplacewithstrongorwe

HTML : How to retain formatting in textarea?

我正在使用HTMLtextarea让用户输入一些数据并将其保存到AppEngine的模型中问题是,当我检索内容时,它只是文本,所有格式都消失了原因是在textarea中没有我们可以制作的格式问题:有没有办法保留用户提供的格式?还有其他元素(除了textarea),我必须使用吗?(哪个?)P.S我对Web开发领域非常陌生,正在做我的第一个项目谢谢 最佳答案 你想要的是RichTextEditor.标准HTML标签只接受纯文本(即使文本是或包含HTML标记)。那里有很多示例(包括链接页面上列出的一些示例),但我强烈建议为此使用预打包的示

ios - Objective-C 101(保留与分配)NSString

101题假设我正在制作汽车数据库每个汽车对象定义为:#import@interfaceCar:NSObject{NSString*name;}@property(nonatomic,retain)NSString*name;为什么是@property(nonatomic,retain)NSString*name;而不是@property(nonatomic,assign)NSString*name;?我知道assign不会像retain那样增加引用计数器。但是为什么要使用retain,因为name是todo对象的成员,它的范围是它自己。其他外部函数也不会修改它。

ios - Objective-C 101(保留与分配)NSString

101题假设我正在制作汽车数据库每个汽车对象定义为:#import@interfaceCar:NSObject{NSString*name;}@property(nonatomic,retain)NSString*name;为什么是@property(nonatomic,retain)NSString*name;而不是@property(nonatomic,assign)NSString*name;?我知道assign不会像retain那样增加引用计数器。但是为什么要使用retain,因为name是todo对象的成员,它的范围是它自己。其他外部函数也不会修改它。

objective-c - NSString 属性 : copy or retain?

假设我有一个名为SomeClass的类,其属性名称为string:@interfaceSomeClass:NSObject{NSString*name;}@property(nonatomic,retain)NSString*name;@end我了解可能会为名称分配NSMutableString,在这种情况下,这可能会导致错误行为。对于一般的字符串,总是使用copy属性而不是retain是个好主意吗?“复制”属性的效率是否比“保留”属性低? 最佳答案 对于类型是符合NSCopying协议(protocol)的不可变值类的属性,您几乎

objective-c - NSString 属性 : copy or retain?

假设我有一个名为SomeClass的类,其属性名称为string:@interfaceSomeClass:NSObject{NSString*name;}@property(nonatomic,retain)NSString*name;@end我了解可能会为名称分配NSMutableString,在这种情况下,这可能会导致错误行为。对于一般的字符串,总是使用copy属性而不是retain是个好主意吗?“复制”属性的效率是否比“保留”属性低? 最佳答案 对于类型是符合NSCopying协议(protocol)的不可变值类的属性,您几乎

ios - Objective-C ARC : strong vs retain and weak vs assign

ARC引入的属性有两个新的内存管理属性,strong和weak。除了copy,这显然是完全不同的东西,strongvsretain和有什么不同吗?弱vsassign?据我了解,这里唯一的区别是weak会将nil分配给指针,而assign不会,这意味着释放后,当我向指针发送消息时,程序将崩溃。但是如果我使用weak,这将永远不会发生,因为发送到nil的消息不会做任何事情。我不知道strong和retain之间有什么区别。我有什么理由应该在新项目中使用assign和retain,还是已经弃用了? 最佳答案 看了这么多Stackoverf

ios - Objective-C ARC : strong vs retain and weak vs assign

ARC引入的属性有两个新的内存管理属性,strong和weak。除了copy,这显然是完全不同的东西,strongvsretain和有什么不同吗?弱vsassign?据我了解,这里唯一的区别是weak会将nil分配给指针,而assign不会,这意味着释放后,当我向指针发送消息时,程序将崩溃。但是如果我使用weak,这将永远不会发生,因为发送到nil的消息不会做任何事情。我不知道strong和retain之间有什么区别。我有什么理由应该在新项目中使用assign和retain,还是已经弃用了? 最佳答案 看了这么多Stackoverf

Masonry方法中Block无需使用WeakSelf 而 Retain Circle又是什么?

一、什么是retaincircle?retaincycle表示两个对象之间互相强引用/互相retain对方的情况,导致对象之间谁也释放不了,造成内存泄露。从referencecount方面解析,即当两个对象互相强引用的时候,双方的引用计数都是+1的,导致任何时候引用计数都不为0,始终无法释放,无法释放他们的内存,即使已经没有变量持有他们。二、打破retaincircle其中最常用的方法是:使用weak弱引用修饰属性使用__weak修饰self在block调用之后将block置nil。三、block中引用self要注意循环引用问题那么Masonry的block中调用self会造成循环引用吗?通过