相关疑难解决方法(0)

属性与实例变量

我试图理解一些人用来区分实例变量和属性的策略.常见的模式如下:

@interface MyClass : NSObject {
    NSString *_myVar;
}

@property (nonatomic, retain) NSString *myVar;
@end

@implementation MyClass
@synthesize myVar = _myVar;
Run Code Online (Sandbox Code Playgroud)

现在,我认为这个策略背后的整个前提是可以很容易地区分出伊达和财产之间的区别.所以,如果我想使用由合成属性继承的内存管理,我会使用如下内容:

myVar = @"Foo";
Run Code Online (Sandbox Code Playgroud)

另一种方式是通过自我引用它.[ivar/property here].

使用@synthesize myVar = _myVar策略的问题是,我认为编写代码如:

myVar = some_other_object; // doesn't work. 
Run Code Online (Sandbox Code Playgroud)

编译器抱怨myVar未声明.为什么会这样?

谢谢.

iphone cocoa cocoa-touch objective-c

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

没有ivars - >我错过了什么?

我从不使用伊娃.我只使用属性 - 有时使用基本类型分配属性,有时使用"私有"类扩展.我已经看到了不使用ivars切换到ARC的优点 - 我有一些带有大量ivars的借用代码,我仍然不能"ARC",因为我不知道需要保留什么.所以我知道使用ivars的一些优点,但使用ivars而不是属性有什么好处?

注意:我完全依赖于(通过编译器?)为属性声明自动添加的ivars.

不要标记为关闭:我已经看过其他一些问题,比如这个这个,没有一个问题.标题看起来不错,但就像SO上的那么多问题一样,问题是一堆奇怪的疑惑和其他东西.

objective-c automatic-properties ios

8
推荐指数
1
解决办法
559
查看次数

在iPhone编程中使用属性

可能重复:
如果您在Objective-C中仅使用属性,是否有任何理由声明ivars?
ObjectiveC ivars或@property

我是iPhone编程的新手(以及编程场景).我试图在各个地方研究属性,并发现它们基本上是为其他类创建getter和setter方法以获取对这些对象的访问权限的快捷方式.

现在,我已经看到程序员在@interface之后的花括号中定义对象:UIViewController以及之后的属性,当所有访问都发生在该类的.m文件中时.

现在,那段多余的(?)代码,是否有必要?这是标准吗?期待一些可理解的意见.

先感谢您.

iphone objective-c uiviewcontroller ios ios5

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