草庐IT

getter-setter

全部标签

ios - 继承属性,在从只读继承的属性中读写时不合成setter

我在处理一个属性时发现了一个奇怪的行为,该属性被继承为只读,而不是在继承的类中重新声明为读写在A.h@interfaceA:NSObject@property(nonatomic,strong,readonly)NSObject*someProperty;@end在B.h@interfaceB:A//nomatterifhere//@property(nonatomic,strong,readwrite)NSObject*someProperty;-(void)foo;@end在B.m@interfaceB()//nomatterifhere@property(nonatomic,st

ios - NSFetchedResultsController 中的 NSPredicate 没有使用 Category 的 getter

我有一个名为seconds的具有int_32属性的属性。在一个类别中,我将该属性重新声明为只读并重写getter以从其他属性创建它。问题是当我使用[NSPredicatepredicateWithFormat:@"SELF.seconds>%i"];谓词不起作用,因为谓词未调用getter。它在我的其他代码中调用得很好,只是不在谓词中。任何人都知道为什么会发生这种情况或如何解决这个问题?(除了重新创建NSFetchedResultsController)。 最佳答案 谓词被转换为SQL并在商店上运行。它不运行您的任何代码。因此,您只

ios - NSManagedObject 类并创建一个 Setter 方法

因此在常规类中,您可以覆盖类属性的setter方法:-(void)setSortBy:(NSString*)sortBy{//Dootherstuff_sortBy=sortBy;}使用_可以防止方法调用自身的无限循环。我正在尝试对NSManagedObject类做一些类似的事情,但它没有提供使用下划线(_)的选项:-(void)setHasNewData:(NSNumber*)hasNewData{//updateself.modifiyDate_hasNewData=hasNewData;}给我一​​个错误并建议我将_hasNewData替换为hasNewData。这是应该如何完成

ios - 这个 GCD 实现的 getter setter 线程安全并且比@synchronized 工作得更好吗?对象

@interfaceViewController()@property(nonatomic,strong)NSString*someString;@end@implementationViewController@synthesizesomeString=_someString;-(NSString*)someString{__blockNSString*tmp;dispatch_sync(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0),^{tmp=_someString;});returntmp;}-(void

php - 开始 oop php 问题 : do constructors take the place of getter?

我正在完成本教程:http://www.killerphp.com/tutorials/object-oriented-php/php-objects-page-3.php首先他让你在类中创建一个setter和getter方法:name=$new_name;}functionget_name(){return$this->name;}}php?>然后创建对象并回显结果:set_name("StefanMischook");$jimmy->set_name("NickWaddles");echo"ThefirstObjectnameis:".$stefan->get_name();ech

php - OOP PHP,使用魔法方法的 getter 和 setter

有哪些策略可用于为PHP类的私有(private)成员创建访问器和修改器?这个建议好吗:http://cormacscode.wordpress.com/2009/01/22/read-only-object-variables-in-php-using-magic-methods/$varName;}publicfunction__set($varName,$varValue){}}如果某些成员需要私有(private)、公共(public)或protected属性方法怎么办? 最佳答案 首先,__get、__set等被定义为pu

php - 将 Setter 和 Getter 添加到 Laravel 模型

如果我想让EloquentModel类拥有setter和getter来实现接口(interface),那么下面的方法是否有意义,或者是否有解决问题的“laravel”方法classMyClassextendsModelimplementssomeContract{publicfunctionsetFoo($value){parent::__set('foo',$value);return$this;}publicfunctiongetFoo(){returnparent::__get('foo');}} 最佳答案 您可能正在寻找ac

php - 是否可以从 Twig 调用实体的 getter 方法之一?

我有一个像下面这样的实体:classitem{/***@varinteger**@ORM\Column(name="id",type="integer")*@ORM\Id*@ORM\GeneratedValue(strategy="AUTO")*/private$id;/***@ORM\Column(type="integer",nullable=true)*/private$errorNum;publicfunctiongetErrorNum(){return$this->errorNUm*3;}在将实体传递给Twig后,我可以像这样访问Twig中的$errorNum属性:{{ite

php - 除了更少的代码外,使用 __get/__set 代替传统的 getter/setter 方法是否有优势?

来自Java,我只有几次假期访问PHP。看看神奇的get和set方法,我的(受Java影响的)肚子开始疼了:看起来你好像是在直接访问属性(当然,当然,你实际上是在使用__get和__set)。所以-除了您必须编写的代码更少之外,使用魔术getter和setter方法而不是传统的getX()/setX()方法有什么优势吗?我应该在编写PHP代码时开始使用它们吗?谢谢,最好! 最佳答案 __get()的唯一好处是可以减少代码,但即便如此也未必如此。例如,如果您有一组10个私有(private)成员,并且您希望getter显示5个,则必须

php - 像在 C# 中一样在 PHP 中获取和设置(私有(private))属性,而不使用 getter setter 魔术方法重载

总结代码示例:ClassPeople{//privateproperty.private$name;//othermethodsnotshownforsimplicity.}直截了当。让我假设$name是一个PRIVATE类成员(或者属性、变量、字段,随便你怎么称呼)。有没有办法在PHP中执行这些操作:$someone=newPeople();$someone->name=$value;$somevar=$someone->name;没有使用__get($name)和__set($name,$value)。背景我需要检查分配的$value,因此我只需要一个像这样的gettersette