问题标签 [declared-property]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
objective-c - Why would I create a property of a superclass only to use the subclass
I'm following the Stanford online course Developing iOS 7 Apps for iPhone and iPad (link to course in itunes U).
The first assignment asks the students to create some classes(Card, PlayingCard, Deck, PlayingCardDeck) detailed in the notes and update a view controller to display a random card in a deck of playing cards.
Two of the required tasks include:
- Add a private property of type Deck * to the CardGameViewController.
- Use lazy instantiation to allocate and initialize this property (in the property’s getter) so that it starts off with a full deck of PlayingCards.
I've added the following to my code:
A hint indicates the following:
- Even though the type of the property you must add is required to be a Deck (not PlayingCardDeck) you’ll obviously have to lazily instantiate it using a PlayingCardDeck. This is perfectly legal in object-oriented programming because a PlayingCardDeck inherits from Deck and thus it “is a” Deck. If you are confused by this concept in object-oriented programming, this course may be rather difficult for you.
PlayingCardDeck is a subclass of Deck. I understand that it "is a" Deck.
What I don't understand is why a property of Deck is being used instead of PlyaingCardDeck.
cocoa-touch - 为什么Apple使用assign而不是weak来存储委托?
一些 Cocoa 和 Cocoa Touch 类将它们的委托属性声明为assign
而不是weak
,这会强制类的用户nil
在dealloc
这很麻烦。
苹果为什么要这样做?
objective-c - 识别头文件与实现文件中的属性
我一直有兴趣使用类似于以下代码的代码来自动构建我的对象(因为其中有很多具有相当多的属性):
但是,我注意到的是,这段代码不仅会尝试在我的头文件中的属性上运行,还会尝试在我的所有实现属性上运行,这是我不想要的。
由于 Objective-C 实际上并没有区分公共属性和私有属性,我不知道该怎么做。关于如何表明我只对头文件中的属性感兴趣以有效地模拟相同的事情有什么想法吗?
objective-c - 在一两行中创建一个对象并设置一个属性
我想设置一个属性,但我不确定最好的方法是什么。我可以想到两种方法来做到这一点。通过创建一个对象,将其存储在一个变量中,并设置属性:
或者通过在一行中创建和设置:
是否有任何理由一种方式实际上更好/更安全/更快/等等?有没有比我上面列出的两个更好的方法?我不确定这是否会有所不同,但这将是第一次设置该属性。
objective-c - 初始化这些变量时使用 self.variable 和 _variable 的区别
我知道实例变量和属性。我经常看到人们UILabel
这样初始化
self.label
那么,使用和_label
设置对象有什么区别呢?
objective-c - 使用点表示法设置属性时出现错误“找不到属性 setVariableName”
我刚刚开始学习 Objective-C,但我不确定何时使用点表示法与方括号。我知道这里有人问过类似的问题,但我仍然没有真正理解其中的区别。我已经读过[myObject doSomething]
并且myObject.doSomething
是等效的。但我不确定的是,当我@property
用来生成一个方法时,它会自动生成一个我只能与方括号一起使用的 setter 方法。
为什么我在写作时会收到错误消息object.setNumber = 4
,为什么我只能使用方括号?
objective-c - 直接在-init中设置属性的ivar时是否保留对象?
我的理解是应该直接从init
方法内部访问实例变量。例如:
我想知道这个_name
变量。在这两个init
示例中,是否_name
保留?对于此示例,我使用的是 ARC。
ios - 属性不会在 iOS 7 中初始化
我正在为 iOS 7 开发,但我仍然必须手动编写 getter,否则我的属性不会被初始化。我尝试手动合成这些属性,即使不再需要这些属性,但这并没有做到。
在下面的视图控制器中,我使用了motionTracker
永远不会初始化的属性。我的所有项目都有同样的问题,所以我知道这是我的误解。
该motionTracker
方法有一个公共 API,startsTrackingMotion
所以我不知道为什么这不起作用。
objective-c - 实现自定义访问器方法时是否会覆盖声明的属性属性?
假设我像这样声明一个属性
然后我创建一个自定义设置方法
编译器是否解释了copy
关键字,以便这个 setter 函数等价于这个?
还是我有责任以这种方式编写它以使关键字与行为匹配?
objective-c - 在不使用访问器的情况下设置继承属性的默认值
我总是看到人们争论是否在-init
方法中使用属性的设置器。我的问题是如何在子类中为继承的属性创建默认值。假设我们有一个名为的类NSLawyer
——一个我无法更改的框架类——它的接口如下所示:
一个看起来像这样的实现:
现在假设我想扩展NSLawyer
. 我的子类将被调用SeniorPartner
。而且由于高级合伙人应该有很多客户,所以在SeniorPartner
初始化时,我不希望实例以0
; 我希望它有10
。这是SeniorPartner.m:
那么,Objective-C 新手要做什么呢?好吧,我的意思是,我只能做一件事,那就是设置属性。除非我错过了什么。有什么想法、建议、提示或技巧吗?