在一个班级。我有
NSMutableArray *rountines;
在另一个类.m我想做这样的事情
[routines addOject:@"Hello];
另一个类是ModalViewController类型设置。
所以,从本质上讲,我希望MVC的.m文件能够读取,编辑和执行其他东西到我在标题中声明的ivars。
干杯,
萨姆
修改
另一个与我想要实现的类似的例子就像编辑屏幕。
答案 0 :(得分:2)
你真的不能在课堂之间分享ivars。 ivar代表实例变量,它是属于某个特定对象实例的变量。解决此问题的方法是允许其他对象访问此对象的状态。这通常通过setter和getter方法完成。 Objective-C 2.0通过提供@property和@synthesize关键字使这更容易。
如果您有权访问具有例程数组的对象,则可以通过其属性(getter方法)访问它,如下所示:
[[someObject routines] addObject:@"hello"];
答案 1 :(得分:0)
you can either do this by making the ivars you want to share globals(在这种情况下,它们将是单例类或app委托类的ivars)或者通过传递对要修改ivars的类的引用作为ModalViewController类的方法的参数:
@implementation ModalViewController
......
-(void)addObjectToRoutinesFromClass: (MyClass *)myclass {
[myclass.routines addObject:@"Hello"];
}
@implementation MyClass
......
ModalViewController *myModalViewController = [[ModalViewController alloc] init];
[myModalViewController addObjectToRoutinesFromClass:self];
@end