问题标签 [synthesize]
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.
ios - objective-c - 什么是声明代表的正确方法?
我是 Objective-c 和 iOS 开发的新手,在我的课堂上我声明了委托协议。
我发现了几个这样做的例子,它们看起来都非常相似,但有一些区别,我想自己弄清楚并理解。
示例 1:
(链接 - https://stackoverflow.com/a/12660523/2117550和https://github.com/alexfish/delegate-example/blob/master/DelegateExample/CustomClass.h)
我的类.h
我的班级.m
示例 2:( 链接 - http://www.tutorialspoint.com/ios/ios_delegates.htm)
实际上除了这两个不同之外是相同的..
与他们不同的事情:
- 例1中我们
@class
在protocol之前声明,真的有必要吗?或者只是最佳实践。如果没有此声明,第二个示例可以正常工作。 - 在示例 1 中
@synthesize delegate
,据我了解,我们使用它为属性创建 getter/setter,但我们真的需要它吗?第二个例子没有这个。
这两个例子都很好,我只是想消除我心中的困惑。
谢谢!
ios - Xcode 5.1.1 中没有自动下划线 ivar
我只是注意到,出于某种原因,我似乎没有在我的 iOS 7 项目中自动创建下划线 iVar,我想知道为什么会这样。我的设置:
我的类.h
我的班级.m
这导致Use of undeclared identifier: '_aNumber'。
为什么呢?我以为下划线 iVar 总是自动合成的?是因为我使用的类扩展吗?如果我把@synthesize aNumber = _aNumber;
它(显然)工作。
time - 在 Verilog 中创建可以合成的时间延迟
我正在尝试创建一个可以合成的时间延迟,而不仅仅是在我的模拟中工作。延迟需要为 1.439548 毫秒或尽可能接近该精度。我正在使用 Lattice Diamond 和 MACHX02 7000HE FPGA。延迟用于等待数据事务之间所需的指定时间。到目前为止,我正在使用一个内部振荡器来运行一个单独的计数器,该计数器用于在指定的时间间隔(使用 2.15Mhz,38400 波特)一次吐出我的数据。我是否需要使用另一个时钟/计数器来延迟?如果是这样,是否有人熟悉如何定义和使用该板的时钟?我很困惑,这是我程序的最后一个要求。任何帮助表示赞赏。
routing - 访问层次结构之外的顶级资源
有没有办法在verilog中合成一个架构,这样一个深度嵌套的端点可以访问一些顶级引脚(来自.ucf),而无需通过层次结构的每个模块明确路由引脚。
就我而言,我有一个带有深度嵌套端点的 PCIe 块。在端点处有一个地址解码器,需要从顶层的引脚提供一些信号信息。
我宁愿不修改每个中间模块来携带必要的电线。
我的网络搜索很受挫,因为“net”和“bus”这两个词在 verilog 中已经有了不同的含义。
我已经尝试过特定的分层命名,例如(例如)top.button 和 top.LED,但只成功地访问了可读引脚,而不是可写引脚,这让我假设我在这里遗漏了一些基本的东西。
更新 我可以模拟这个 http://www.edaplayground.com/x/AAq
并无错误地合成(类似的结构)(Xilinx XST),但是当它在真实硬件中运行时,LED 上没有输出,所以我想知道合成是否不支持向上的名称引用?
objective-c - 防止 @property 的自动 ivar 合成
我有一些readonly
属性,我想与其他属性类似地声明:
通常,我绝对不希望为这些属性自动合成实例变量和 getter 方法。在这种情况下,如果我忘记为它们写一个显式的 getter,我就犯了一个错误,我希望编译器告诉我并拒绝编译(或者至少发出警告)。
在这种情况下,使用@property
声明是不好的做法吗?我应该改用:
或者,有什么方法可以@property
在属性列表(nonatomic, readonly, dont_synthesize_this_one_please)
中告诉我我绝对不希望合成一个实例变量,如果我错过了 getter,这是一个错误?
ios - 是否建议为只读合成属性定义 ivars?
我发现很多时候我想要一个综合的只读属性,我只是根据其他变量来实现该属性的 getter 方法,而不需要 ivar,例如(注意:我正在定义界面中的 ivars,因为我使用的是 OmniGraffle UML 软件,它无法识别由合成属性自动生成的 ivars):
在上面的Editor
类中,我是否需要_options
在头定义中定义 ivar,更重要的是自动生成的 ivar 是否占用符号表中的内存或空间?copy
此外,在这种情况下使用,retain
或 no value会更有效吗?只是好奇。
xcode - 如何应用自动综合语句?让它们超过综合语句更好/更糟?
我了解了@synthesize 语句的工作原理,但我运行了最新版本的 xcode(不是 xcode 6 beta),并且在学习 Objective-C 时,我发现可以自动完成合成语句。
objective-c - 子类没有父母公共财产的ivar
我正在学习objective-c,但有些东西我找不到答案。
我在类的公共接口中声明了一个属性。在该类中,我可以使用下划线直接访问 ivar,而无需综合属性。
例如:
// Class.h
@property (nonatomic, strong) NSString *someString;
// Class.m
_someString = something;
但是,如果我对该类进行子类化,则无需任何额外代码即可访问 setter 和 getter,但无法直接访问 ivar,除非我显式合成属性,这在超类中不是必需的步骤。
我知道它确实为子类创建了特定的 ivars,因为我有同一个超类的 2 个子类,每个子类都有自己的超类属性值。如果我想直接访问 ivars,我只是不明白为什么需要显式合成子类。
这不是一个真正的问题,而是更多的好奇心。
objective-c - 无法设置协议的综合属性布尔值
我有一个SSENoteTrack
符合两个协议的类,SSETrack
并且SSENoteContainer
. 这两个协议都在接口文件中声明了一个@property:
在SSENoteTrack.h
中,我综合了属性。
在 的实例上SSENoteTrack
,属性以 nil 开头。我尝试将它设置在另一个类的代码中,如下所示:
我可以将属性设置为 YES 就好了。但是,我不能将该属性设置为 NO。例如,在该行之后[track setMuted:NO]
,track.isMuted
返回nil
。
很奇怪的问题。也许是因为我的协议设置方式?谢谢!
objective-c - 删除@synthesize
Obj-C 新手;报名参加一个班自学。我有以下用于练习的工作代码,但现在必须删除 @synthesize 并修改程序以处理编译器赋予实例变量的新名称。尝试了很多东西;由于不知道 @synthesize 如何完全实现以及删除它意味着什么,因此总是会出现编译器错误。感谢您的任何解释,所以。
主文件
分数.h
分数.m