这个问题更像是一个摘要,可以理解多个视图的交互方式。
采取以下方案 -
view1.h
- > #import "view2.h"
- > @property (strong, nonatomic) NSString *variableA;
view1.m
- > @synthesize variableA, variableB
view2.h
- > #import "view1.h"
- > @property (strong, nonatomic) NSString *variableB;
view2.m
- > @synthesize variableA, variableB
为什么这不起作用?我是否还需要将其他视图标题导入到实现文件中?是否有不同的方法来实现同一目标?
答案 0 :(得分:0)
我认为您误解了@synthesize
的用法。实际上,它现在唯一的目的是允许通过指定的名称本地访问该物业的ivar。例如:
@interface View1 : UIView
@property (strong, nonatomic) NSString *variableA;
@end
@implementation View1
@synthesize variableA;
- (void)someMethod {
NSLog(@"%@", variableA);
}
@end
与否@synthesize
比较:
@interface View2 : UIView
@property (strong, nonatomic) NSString *variableB;
@end
@implementation View2
- (void)someMethod {
NSLog(@"%@", _variableA);
NSLog(@"%@", self.variableA);
}
@end
如果要从其他类或子类访问属性,请使用选择器或点表示法。
@interface View3 : View1
- (void)anotherMethod:(View2 *)view1;
@end
@implementation View3
- (void)anotherMethod:(View2 *)view2 {
NSLog(@"%@", self.variableA);
NSLog(@"%@", [self variableA]);
NSLog(@"%@", view2.variableB);
NSLog(@"%@", [view2 variableB]);
}
@end