Tag: ivar

访问实例variables的语法? (目标C)

在Objective-C中访问实例variables的正确语法是什么? 假设我们有这个variables: @interface thisInterface : UIViewController { NSMutableString *aString; } @property (nonatomic, retain) NSMutableString *aString; 而且它是合成的。 当我们想要访问它时,我们首先要分配并初始化它。 在Objective-C编程了大约一个月之后,我看到了两种不同的语法forms。 我已经看到人们只是简单的aString = [[NSMutableString alloc] initWithString:@"hi"] ,他们在那里分配string; 我也看到人们用self.aString开始,然后他们开始初始化他们的伊娃。 我想我只是想弄清楚什么是初始化一个实例variables的最合适的方式,因为在前面的例子中,我收到了EXC_BAD_ACCESS错误。 在预先self. 虽然,它并没有出现。 原谅我,如果这是一个重复的问题,但在阅读了一些post后,这让我好奇。 我正在尝试使用Objective-C来学习正确的语法,因为我更喜欢正确而不是马虎。

我应该在Objective-C中使用ivars吗?

我有一个应用程序,我正在写,只使用@properties。 在我的任何课堂文件中,我都没有宣布任何一个伊娃。 据我所知,@属性不再需要ivars。 我是否按照最佳做法进行编码? 这最终会在长期的谚语中令我难堪吗? 我一直在阅读关于“正确”和“错误”的混合评论。

iOS,使用下划线vs直接使用iVar

这已经被问了很多,但是这个问题是要得到什么时候你会使用这些方法的例子。 请使用setter和getter无限循环以外的示例 例。 。H – @property(nonatomic, strong)NSMutableArray* mutArray .m – @synthesize mutArray= _mutArray; 1)我想要: _mutArray = [[NSMutableArray alloc] init]; 要么 self.mutArray=[[NSMutableArray alloc] init]; 我为什么要做他们每个人,有什么区别? 2)如果我想添加一个对象… [_mutArray addObject:object]; 要么 [self.mutArray addobject:object]; 为什么? 非常感谢!

IBOutlets应该是Ivars还是属性?

虽然我确定它们存在,但是在ViewController中声明sockets的正式最佳实践中遇到困难。 目前有三个选项,我可以看到: 只有伊娃 财产只 财产支持与伊娃 当我尝试通过从IB拖动到ViewController中自动生成一个属性时,Xcode目前崩溃,但是我记得,这样做会创build一个没有ivar的属性。 也可以拖入伊娃部分,这将创build一个没有财产的伊娃。 这表明,只有财产和伊娃只有网点都可以用苹果。 所以在viewDidUnload中,我们需要将nil分配给我们的任何网点,但是dealloc呢。 如果我们使用了一个没有ivar的财产,我们怎么能释放我们的出口给我们不应该在init或dealloc中使用任何访问器? 在我看来,唯一允许我们在没有访问器的情况下释放我们的插件的模式是使用一个由ivar支持的属性,所以我们可以在不使用访问器的情况下手动释放我们的dearoc中的ivar,但是这是苹果代码生成不支持。

iOS自动@synthesize而不创build伊娃

如果我有一个@property ,我不想通过ivar支持我简单地省略@synthesize和手动getters返回一个计算值。 但是现在从Xcode 4.4开始,如果我没有指定@synthesize ,编译器会自动生成它。 这是否意味着它也会产生ivar即使我不需要/使用它? 我最终可能会强制不使用dynamic自动合成。 然而,这是错误的,因为@dynamic应该用来closures警告,如果getter和setter在其他地方或运行时执行 。