小编Gly*_*ton的帖子

何时使用'self'访问属性

我已在本网站上阅读了有关此问题的一些问题,我理解以下内容:

self.property访问手动或@synthesize创建的getter/setter方法.根据属性是否声明为保留,复制等,保留计数被正确修改,例如保留属性,使用"保留"释放分配新值的先前值,并将保留计数增加1.

属性通常使用相同名称的实例变量声明(如果手动进行赋值,则可以不同).这通常是因为@synthesize生成的访问器使用实例变量引用内存中的对象,然后执行相关命令.

我的问题是基于这样一个事实:在许多例子中,self.property和property可以互换地用于不同的事情,我在确定规则时遇到了麻烦.Apple Docs中"食谱"示例应用程序中的一个示例包含以下内容:

self.navigationItem.title = recipe.name;
nameTextField.text = recipe.name;    
overviewTextField.text = recipe.overview;    
prepTimeTextField.text = recipe.prepTime; 
Run Code Online (Sandbox Code Playgroud)

和...

self.ingredients = sortedIngredients;
Run Code Online (Sandbox Code Playgroud)

这些属性中的每一个都具有相同名称的关联私有实例变量.所有都以'nonatomic,retain'属性以相同的方式声明.每个都以dealloc发布...

然而,"成分"通过self访问,"prepTimeTextField"可以直接访问.

访问方法差异的原因是什么?

如果我正在访问视图的代理呢?或者是核心数据对象,它被前一个视图控制器作为保留属性传递给视图控制器?

非常感谢

properties objective-c self retain

7
推荐指数
1
解决办法
1413
查看次数

关于iPhone应用程序结构的问题 - 核心数据,视​​图,模态视图等

大约一个月前,我和我的妻子提出了一个关于iPhone应用程序的好主意,所以我开始考虑应用程序如何从用户角度运行,大约一周前我第一次打开XCode并开始开发.

在我开始关注应用程序的编写之前,我想确保在脑海中清楚地了解一些关键概念,特别是与架构相关的概念.

仅供参考,作为一项原则,我想尝试以编程方式(特别是用户界面)创建我的应用程序,以便我能够彻底了解正在发生的事情.稍后我可能会使用IB作为加速UI开发的工具(目前适用,因为我使用的是TableView而不是静态视图).

查看控制器

  • 因此,UINavigationControllers通常不是子类,并且在AppDelegate中创建为属性,并且是MainWindow.xib的主要"子视图".

  • UINavigationController控制一堆视图,通常使用根视图控制器启动.

  • 导航控制器通常被引用并从当前/顶视图控制器中作为[self navigationcontroller]发送消息,它是UIViewController父类的只读属性.

核心数据

  • Managed对象上下文是访问模型中数据的主要控制点,但通常不直接使用,而是使用fetch请求返回数据对象的数组,集或字典,然后由视图控制器使用它们来呈现和操作数据.

  • 上下文作为app委托中的属性创建,然后在启动时传递给根视图控制器,然后在告知导航控制器更改视图之前将其传递给堆栈中的后续视图(例如,当单元格被点击时).

所以我花了一个星期才到达这里,我可以创建我的模型,用数据填充它并将其显示在表格视图上但是当你想要编辑数据时,我无法找到很多关于模态视图的信息,特别是如何设计模态视图(如果与普通视图有任何特定的差异)?

另外,我不完全确定数据的整个"绑定",以查看对象的功能以及如何以编程方式执行此操作?

非常感谢您的意见和建议.

iphone cocoa-touch core-data uiviewcontroller modalviewcontroller

5
推荐指数
1
解决办法
408
查看次数