合成属性是否已分配/初始化?

2023-11-25

如果我有一个习惯NSObject名为 ProgramModel 的类,当我时它是否获得 alloc/init -ed@property and @synthesize来自另一个班级? 例如,在这样的 ProgramController 类中

// ProgramController.h
#import "ProgramModel.h"
@interface ProgramController : UIViewController {
    ProgramModel *programModel;
}
@property (nonatomic, retain) ProgramModel *programModel;

// ProgramController.m
#import "ProgramController.h"
@implementation ProgramController
@synthesize programModel;
// etc

我还需要在中分配/初始化吗initWithNibName or viewDidLoad,或者已经是alloc/init-ed 因为property/synthesize?


您需要手动填充该属性。例外情况是,如果您有IBOutlet property您已在 nib 文件中连接;当笔尖加载时,它将自动填充。

我发现对于视图控制器来说,绝大多数属性都是IBOutlets以及描述视图将显示的内容的属性,后一种情况通常由创建视图控制器的对象设置。对于显示某个对象的详细视图的视图控制器来说,通常就是这种情况。

如果您确实拥有完全位于视图控制器本地的属性,则常见的模式是编写自己的 getter 和 setter(而不是使用@synthesize) 并在 getter 中创建该对象(如果该对象不存在)。这种延迟加载行为意味着您可以在内存不足的情况下轻松释放资源,并且只需在需要时支付加载对象的成本。

// simple lazy-loading getter
-(MyPropertyClass*)propertyName {
    if(propertyIvarName == nil) {
        propertyIvarName = [[MyPropertyClass alloc] init];
        // ... other setup here
    }
    return propertyIvarName;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

合成属性是否已分配/初始化? 的相关文章

随机推荐

  • 从 .NET 中的字符串获取 Type 对象的最佳方法

    在 NET 中将字符串转换为 Type 对象的最佳方法是什么 需要考虑的问题 该类型可能位于不同的程序集中 该类型的程序集可能尚未加载 这是我的尝试 但它没有解决第二个问题 Public Function FindType ByVal na
  • Facebook iOS SDK 4.x 中没有 FBSession

    没有课了FBSession在新的 Facebook iOS SDK v4 x 中 我怎样才能知道用户现在是否登录 提前致谢 Vincent 是对的 检查 FBSDKAccessToken currentAccessToken 以确定用户是否
  • 如何在 C 语言中获取程序的执行时间(以毫秒为单位)?

    目前我正在获取程序的执行时间seconds通过致电 time t startTime time NULL section of code time t endTime time NULL double duration difftime e
  • 如何找到elasticsearch中最常用的短语?

    我知道您可以使用 using 方面在索引中找到最常用的术语 例如 对于以下输入 A B C AA BB CC A AA B BB AA B 术语方面返回此 B 3 AA 3 A 2 BB 2 CC 1 C 1 但我想知道是否可以列出以下内容
  • 如何更改本地 Service Fabric 默认启动 URL?

    我使用 Visual studio 2017 在 Service Fabric 本地集群中创建了一个无状态服务 它带有预定义的随机端口 8462 我将 ServiceManifest xml 中的端口更改为另一个端口 但每次启动项目时它都会
  • 如何为 ios 应用程序构建和使用 C++ 静态库

    我知道如何使用构建对象 C 静态库iOS gt Framework Library gt Cocoa Touch Static Library在 xcode 4 6 中 在本教程的帮助下很简单在 iOS 教程中创建静态库 然而 我不确定的一
  • 在 Pandas DataFrame 中创建多列的所有可能组合

    鉴于以下数据框 df pd DataFrame Student Siri Alexa Class 6 7 Section A B Teacher Ravi Mark School C D 我想返回一个包含所有列值的所有可能组合的表 我使用下
  • 如何永久删除 Google 管理的虚拟机

    我无法永久删除我创建的由 Google App Engine 管理的虚拟机 我已从开发人员控制台和使用 gcloud 命令多次删除它们 在每种情况下 命令都会成功完成并删除虚拟机 但随后 Google 几乎立即创建一个全新的虚拟机来取代它
  • docker和主机之间的PID映射

    docker 命名空间与主机命名空间有何不同以及 pid 如何在这两者之间映射 谁能给我一个想法 有助于使用源代码在主机和 docker 之间映射 pid 的简单方法 您可以在中找到映射 proc PID status文件 它包含这样一行
  • 实体框架是否支持循环引用?

    我有两个具有父 子关系的实体 此外 父级包含对 主 子级的引用 因此简化模型如下所示 class Parent int ParentId int MainChildId class Child int ChildId int ParentI
  • caret::train:指定模型生成参数

    我正在使用caretR 中用于模型生成的库 我想生成一个earth 又名 MARS 模型 我想指定degree该模型生成的参数 根据文档 第 11 页 earth方法支持此参数 指定参数时出现以下错误消息 gt library caret
  • JSch会话超时限制

    我正在使用 JSch 0 1 50 为我的 CI Jenkins 插件设置到远程服务器的连接 假设我想在这里使用session connect 60000 超时 60 秒 Session session null try JSch jsch
  • 在 1 和 0 的矩形中找到最大块的简单方法

    我正在尝试提出暴力 天真的 解决方案来找到 1 和 0 的矩形中最大的 1 或 0 块 我知道可以做到这一点的最佳方法O n 时间 其中 n 是矩形的总大小 1 1 0 1 0 1 1 0 0 0 1 1 1 0 0 0 1 1 1 1 0
  • 有 Perl 或 Lua 可以替代 Capistrano 吗?

    对于许多 Web 应用程序 我需要像 Capistrano 这样的东西来自动化部署 我知道 Capistrano 可以用来部署非 ruby 应用程序 但我对 Ruby 不熟悉 所以我预计编写部署配置可能会有点痛苦 所以我想知道 除了用 Pe
  • JavaScript - 更改 CSS 颜色 5 秒

    我试图找到一种方法来简要突出显示命名链接上的文本 但只持续几秒钟 a href faq1 因此 在常见问题解答列表中 它会跳转到正确的 ID 将颜色更改为红色几秒钟 作为最终用户的视觉提示 答案就在这里 但随后返回正常颜色并且间隔完成 如何
  • 如何在不使用TOP和子查询的情况下从表中获取第n高的工资?

    最近在一次采访中 我被要求编写一个查询 在该查询中我必须从表中获取第 n 个最高薪水 而不使用 TOP 和任何子查询 我完全困惑了 因为我知道实现它的唯一方法同时使用 TOP 和子查询 请提供其解决方案 提前致谢 尝试 CTE 通用表表达式
  • Angular UI 路由器嵌套视图

    我有这样的结构 div div
  • 从 .txt 文件中用 C++ 美化 JSON 字符串

    我目前正在使用 C 工作 从使用 ostream 写入 txt 文件的请求中获取 HTTP 响应 这是异步发生的 我不想改变它 数据写入完成后 我想从文件中读取 data request type City query London Uni
  • Visual Studio 中仅调试类和资源 - 这可能吗?

    是否可以将一个类添加到 Visual Studio 中的项目中 并仅为该项目的调试配置构建该类 也就是说 它根本不会出现在Release构建中 如果可以的话 是否也可以对资源做同样的事情 我正在特别考虑仅在调试配置中运行但从程序集中删除以供
  • 合成属性是否已分配/初始化?

    如果我有一个习惯NSObject名为 ProgramModel 的类 当我时它是否获得 alloc init ed property and synthesize来自另一个班级 例如 在这样的 ProgramController 类中 Pr