Tag: 属性

错误在Swift类:属性没有在super.init调用初始化 – 如何初始化需要使用self在他们的初始化参数

我重写了一个UITableViewController在Swift中,其中我有两个必需的variables,这是通过使用self的weak引用初始化,因为这些是用来实现UITableViewDataSource协议,并需要self引用,以使用其tableView属性 class VideosListViewController: UITableViewController { required init(coder aDecoder: NSCoder) { super.init(coder: aDecoder) self.datasourceOfflineVideos = ASDataSource(tableViewController: self) self.datasourceOnlineVideos = ASDataSource(tableViewController: self) } // MARK: – Variables var datasourceOnlineVideos:ASDataSource var datasourceOfflineVideos:ASDataSource } 现在的问题是因为它给了我错误Property not initialized at super.init call这是预期的解释在这里: Swift类错误:属性没有在super.init调用初始化 。 Swift的编译器执行四个有用的安全检查,以确保两阶段初始化完成没有错误 安全检查1指定的初始化程序必须确保所有由其类引入的属性在委托给一个超类初始化程序之前进行初始化。 摘录自:苹果公司“Swift编程语言”,iBooks。 https://itunes.apple.com/us/book/swift-programming-language/id881256329?mt=11 所以我的问题是: 如果一个ASDataSource类中的实例variables需要self引用来初始化像ASDataSourcetypes的variables,那我该怎么做? 由于swift不允许我在初始化所有实例variables之前调用super.init()在调用super.init()之前也不允许我在init()的初始化程序中使用self , 目前我正在使用可选variables来解决问题。 但为了学习的目的,我想知道如何做到这一点。 提前致谢 :)

Swift:无法将值分配给协议属性?

A类提供一个string值。 B类有两个Atypes的成员,并提供一个计算属性“v”来select其中的一个。 class A { var value: String init(value: String) { self.value = value } } class B { var v1: A? var v2: A = A(value: "2") private var v: A { return v1 ?? v2 } var value: String { get { return v.value } set { v.value = newValue } } } […]

在视图控制器之间传递variables

我正在使用这个function来切换Xcode 4.3中的视图。 [self performSegueWithIdentifier:@"NextView" sender:self]; 我想在页面之间传递一些参数。 我怎样才能做到这一点?

Objective-C从string中获取类属性

我听说了其他语言的一些类似的问题,但我正在寻找一个特定的情况。 我的应用程序有一个名为“logging”的核心数据模型,它具有许多列/属性,如“date,列1和列2”。 为了保持编程清洁,所以我可以调整我的应用程序到多个场景,input字段映射到plist内的Cor​​e Data属性(例如,我有一个名为“dataToGet”的值为“column1”的stringvariables。 我怎么能通过使用dataToGetvariables从Record类中检索属性“column1”?

目标C – 分配,复制,保留

我是Objective C的新手。我拥有C语言的基本知识,包括指针的概念。 我有两个基本的问题: 有人可以用一些比喻来解释分配,复制和保留之间的区别吗? 如何处理返回指针variables的函数,以及如何通过返回指针执行消息传递?

属性不与getter和setter一起工作

我已经定义了一个属性… @property (nonatomic, strong) NSArray *eventTypes; 我想重写getter和setter … 我写了这个… – (void)setEventTypes:(NSArray *)eventTypes { _eventTypes = eventTypes; //do some stuff here. } 这工作正常,但是当我然后添加此… – (NSArray*)eventTypes { //do some stuff here. return _eventTypes; } 然后这两个函数显示错误,不知道_eventTypes是什么。 这是相同的任何方式。 它使用一个函数,但一旦我添加其他失败他们两个。 还有什么我需要做的呢? 似乎奇怪的是,它与任何一个机器人不是两个。

带有下划线前缀的合成属性和variables:这是什么意思?

可能重复: 属性名称的下划线前缀? 这是什么意思? @synthesize window=_window; 我知道一般来说这意味着“某个类”有一个窗口,但为什么使用_window而不是window ? 这是一个命名空间的东西?