草庐IT

getter-setter

全部标签

ios - Objective-C : Infinite getter method loop after converting to ARC

我有以下方法:-(NSMutableArray*)someArray{//line1if(self.someArray==nil){//line2self.someArray=[[NSMutableArrayalloc]init];}returnself.someArray;}我在非ARC中有这个,它工作正常:如果第2行中的self.someArray是nil,那么继续实例化它。但是,我切换到ARC之后,到了第2行,又回到第1行,继续循环。任何帮助将不胜感激。谢谢。 最佳答案 正确的形式是@synthesizesomeArray=_

ios - 如果显式实现一个 getter,是否仍然创建了 ivar?

我试图了解有关属性的所有情况,主要是自动创建ivar和不自动创建ivar的情况。请告诉我以下情况是否正确:属性是隐式读写的。如果声明了一个readwrite属性,并且getter和setter是都显式实现的,是不是真的不会自动生成ivar?假设声明了另一个读写属性,这次只有getter被显式实现。ivar将自动生成,因为只要属性的两个(getter或setter)之一未明确实现,它就会自动生成。与场景2基本相同,只是这次是显式实现的setter。ivar将自动生成,因为只要属性的两个(getter或setter)之一未明确实现,它就会自动生成。澄清一下,当创建ivar时,它是否总是前面

ios - Objective-C 没有 getter 方法错误

我是Objective-C的新手(以及一般的编程……我只学过Python和一点点HTML)。我正在尝试从教程here中学习但我遇到了一个我似乎无法弄清楚的错误。在Fraction.m中,在-(void)add:(Fraction*)newFraction下,接下来的两行出现错误“Nogettermethodforreadfromproperty”。如果有人能帮助我,那就太好了!任何建议表示赞赏。谢谢,亚当代码:分数演示.m#import"Fraction.h"#importintmain(intargc,constchar*argv[]){@autoreleasepool{Fracti

ios - Xcode 中的 Getters 和 Setters 没有问题

当我查看iOS5开发人员库时,它说我必须为我创建的每个变量包含访问器方法。但是,当我输入@property(weak,nonatomic)NSString*userName;但是,我没有看到任何错误提示我需要“getter”和“setter”。我做错了什么吗? 最佳答案 您不会收到有关需要“getter”和“setter”的消息,因为当编译器“合成”该属性时,会为您创建这些访问器方法。你不必担心他们。当编译器遇到@synthesize指令(在Xcode4.4中,甚至不再需要它)时,将为您创建访问器方法。这在Apple的TheObje

iphone - 使用 getter 访问 Objective-C 中结构实例变量的元素

我有一个实例变量,它是一个结构,例如:structData{UInt32i;UInt32arr[1];};并且在我的类中定义了一个属性:@propertystructDatadata;//andthecorresponding@synthesizeintheimpfile现在,我知道通过data的getter改变i和arr的值是概念上是错误的,因为我将访问getter返回的data的副本(正确的方法是使用self->data访问它)。然而,一些关于以下行的一般Objective-C问题出现了:self.data.i=1;//producescompileerrorself.data.a

iOS - 更改 UIImageView setImage 的行为 : (custom setter)

每当设置UIImageView的图像时,我想执行其他任务。我正在尝试定义自定义setter方法,但没有成功。:@property(nonatomic,strong,setter=setImage:)UIImage*image;米:-(void)setImage:(UIImage*)image{self.image=image;//additionaltaskshere}这显然会导致无限循环。我该怎么做? 最佳答案 代替self.image=image;做[supersetImage:image];此外,您不需要指定setter,因为

objective-c - 如何在保留合成代码的同时向合成的 getter/setter 添加一些代码

例如,我需要在每次调用合成的getter或setter时执行NSLog(@"Executed.")。我看到了2种方法:找到一些可能像合成片段一样工作的片段。Thisthread可能会有所帮助。使用KVO:添加一些将完成工作的观察者。对我来说,所有这些看起来都不令人满意。所以,主题。UPDAE:感谢您的回答,但直接覆盖不是解决方案:我们松开合成代码。如果我们从某个地方(甚至是苹果工程师给我们代码的苹果论坛)“复制粘贴”“正确的”合成代码,我们应该检查它在下一个编译器版本后没有改变。 最佳答案 您可以使用自定义的getter和sette

Vue响应式系统是如何利用getter / setters和Proxies机制实现的?

Vue.js是一款流行的JavaScript前端框架,它通过使用getter/setters和Proxies机制来实现响应式系统。这个功能是Vue.js的核心特性之一,它允许开发者以声明式的方式管理视图和数据的同步更新。在介绍Vue.js的响应式系统之前,先来了解一下什么是响应式系统。简单来说,响应式系统是指当数据发生变化时,系统能够自动地检测到这个变化,并更新相关的视图。在传统的前端开发中,我们常常需要手动更新视图,例如在数据发生变化时手动调用渲染函数或操作DOM元素。而Vue.js的响应式系统则可以自动地完成这些工作,使得开发者能够更专注于业务逻辑的实现。Vue.js的响应式系统是通过利用

ios - Swift 2,带有 Objective-C 选择器 'setOn' 的方法 'setOn:' 与具有相同 Objective-C 选择器的 'on' 的 setter 冲突

Swift2,我有一个继承自objc的UIView的类,它有“on”变量,以及相关的方法“setOn:animated”和“setOn:”,如下所示:publicclassAView:UIView{varon:Bool=falsepublicfuncsetOn(on:Bool,animated:Bool){self.on=on//dosomethingmoreaboutanimating}publicfuncsetOn(on:Bool){setOn(on,animated:false)}我收到一条错误消息:带有Objective-C选择器“setOn:”的方法“setOn”与具有相同O

ios - NSManagedObject setter 给我 [ MyObject setName :]: unrecognized selector sent to instance

我通过xcode编辑器菜单创建了一个NSManagedObject。我的对象只有一个属性“名称”。当我尝试设置属性时,我得到“[MyObjectsetName:]:unrecognizedselectorsenttoinstance”MyObject*thing=[MyObjectobjectFromJSONDictionary:obj];thing.name=obj;我已检查我的属性“名称”在CD中与在我的类(class)中相同。我的接口(interface)属性也是一样的。和我的动态属性是一样的。@property(nonatomic,retain)NSString*name;@d