declared-property相关内容
我知道对象属性的字符串名称.我将如何使用字符串获取和设置该属性? 解决方案 虽然@weichsel 是正确的,但还有更好的方法. 使用: [anObject valueForKey:@"propertyName"]; 和 [anObject setValue:value forKey:@"propertyName"]; 显然,@"propertyName" 可以是一个在运行时
..
我知道我不能使用这个: myView.frame.origin.x = 25.0; 而我必须用它来代替: CGRect myFrame = myView.frame;myFrame.origin.x = 25.0;myView.frame = myFrame; 而且我一直都在这样做,但我不知道为什么我必须这样做.我想填补我理解上的空白.有人可以解释一下吗? 如今 Xcode 为您提供
..
在 Objective-C 类中使用 self.var 与仅使用 var 有什么区别?其中一个有好处或危险吗? 解决方案 foo = self.var;self.var = foo; 在概念上与 相同 foo = [self var];[自 setVar: foo]; 所以使用点表示法,您实际上是在向自己发送消息. foo = var;var = foo; 在概念上与 相同
..
self.myVariable = obj; 和 myVariable = obj; 有什么区别,当我使用 @propery/@synthesize 创建`myVariable? 解决方案 需要注意的是,编译器将 dot-syntax 转换为一个简单的 objc_msgSend 调用:也就是说,它的作用与发送到的消息完全一样该变量的访问器.因此,以下所有三个都是等效的: self.myV
..
根据一些官方讨论,Objective-C 中的类应该只在其头中公开公共方法和属性: @interface MyClass : NSObject@property (nonatomic, strong) MyPublicObject *publicObject;- (void)publicMethod;@结尾 和私有方法/属性应保存在 .m 文件中的类扩展名中: @interface MyCl
..
当我必须使用每个属性时,谁能给我详细解释一下:nonatomic、copy、strong、weak 等,用于声明的属性,并解释每个属性的作用?某种例子也会很棒.我正在使用 ARC. 解决方案 Nonatomic 非原子不会 通过 @synthesize 访问器生成线程安全例程.atomic 将生成线程安全访问器,因此 atomic 变量是线程安全的(可以从多个线程访问而不会损坏数据)
..
我正在为iOS 7开发,但是我仍然必须手动编写getter,否则我的属性就不会初始化.我试着手动合成那些属性,即使现在不再需要它了,但这也没有实现. 在下面的视图控制器中,我使用属性motionTracker,该属性从未初始化.我所有的项目都有相同的问题,所以我知道这是我的误解. #import "ViewController.h" #import "TracksMotion.h"
..
为什么在最新版本的Xcode(dp-4)中,使用retain,nonatomic声明的变量必须在变量名之前使用下划线?这会创建某种类型的安全性吗? 例如,我创建一个属性: @property (retain, nonatomic) IBOutlet UILabel *name; 除非我将dealloc中的变量更改为不具有_,否则我必须这样做: @synthesize name
..
如果我具有只读字符串属性,是否有必要在声明中指定strong(或retain)或copy?如果我未指定,是否假设其中之一? 在我看来,所有权属性仅在有二传手时才有用. @property (nonatomic, readonly) NSString *name; 解决方案 那基本上是正确的.对于readonly属性,strong,retain,weak和assign无效.但是,如
..
鉴于下面的属性声明,方法(A)的工作方式与方法(B)完全相同吗?我只想检查self.yellowViewController = yellcon_New;正在通过我的设置器,以便释放旧对象并保留新对象. // INTERFACE @property(nonatomic, retain) YellowViewController *yellowViewController; // IMPLE
..
我的界面文件中有一个只读属性isFinished: typedef void (^MyFinishedBlock)(BOOL success, NSError *e); @interface TMSyncBase : NSObject { BOOL isFinished_; } @property (nonatomic, readonly) BOOL isFinished;
..
我有一个Objective-C类,其中包含C样式的结构.我需要调用一个C函数,将一个指针传递给该对象成员(也就是属性).为了我的一生,我不知道该如何获取此C结构的地址.使用传统的&运算符获取地址,我遇到了LValue编译器错误. typedef struct _myStruct { int aNumber; }MyStruct, *pMyStruct; @interface MyCl
..
我知道对象属性的字符串名称.我将如何使用字符串获取和设置该属性? 解决方案 虽然@weichsel是正确的,但是有更好的方法. 使用: [anObject valueForKey: @"propertyName"]; 和 [anObject setValue:value forKey:@"propertyName"]; 很明显,@"propertyName"可以是
..
我知道我不能使用它: myView.frame.origin.x = 25.0; 而我必须改用它: CGRect myFrame = myView.frame; myFrame.origin.x = 25.0; myView.frame = myFrame; 我一直都在做,但是我不知道为什么我必须那样做.我想填补我的理解上的空白.有人可以解释吗? 现在Xcode给您“表达
..
我需要一种传递属性并获取分配给它的名称的方法.有什么建议吗? @property (nonatomic, retain) MyObject *crazyObject; NSString *str = SOME_WAY_TO_GET_PROPERTY_NAME(crazyObject); // Above method should return @"crazyObject" 解决方案
..
Objective-C 2.0中的属性是否需要声明相应的实例变量?例如,我习惯做这样的事情: MyObject.h @interface MyObject : NSObject { NSString *name; } @property (nonatomic, retain) NSString *name; @end MyObject.m @implementation @s
..
当我必须使用每个属性(nonatomic,copy,strong,weak等)时,有人可以向我详细解释一个声明的属性,并解释每个属性做什么?某种例子也很好.我正在使用ARC. 解决方案 此答案有很多错误,并且已经过时.请查看其他问题/答案和评论. 非原子 nonatomic用于多线程目的.如果我们在声明时设置了非原子属性,那么任何其他想要访问该对象的线程都可以访问它,并给出有关
..
我有一个表视图作为IBOutlet,默认情况下,XCode将其属性设置为strong而不是weak.有时我会收到“收到内存警告"消息.因此,我尝试将许多属性从strong更改为weak,但是它似乎并没有影响过程,并且一切运行正常.我应该将网点设置为弱点,还是我错了? 最重要的是,应该在viewDidUnload方法中将 ALL 属性设置为nil还是仅设置IBOutlet s? 解决方案
..
我注意到Apple的一些示例在属性上同时包含了retain和readonly修饰符.如果在使用readonly修饰符时没有生成设置器,那么包含retain有什么意义? 示例:AnimatedTableView示例中的@property (retain, readonly) NSString *title;. 解决方案 您可以在类扩展中包含第二个私有读写声明.所有引用的内存管理方案都需
..
根据官方的一些话题,Objective-C中的一个类只应在其标题中公开公共方法和属性: @interface MyClass:NSObject @property(nonatomic,strong)MyPublicObject * publicObject; - (void)publicMethod; @end 并且私有方法/属性应保留在类扩展中
..