我有一个班级MessageStorage
,它已被分类为2个班级MessageSent
和MessageReceive
。我在NSString
课程中定义了MessageStorage
属性。现在我想从MessageSent
类设置此字符串属性,并从MessageReceive
类获取字符串。
我怎样才能做到这一点?
+ (instancetype)sharedInstance { // SuperClass MessageStorage
if (!messageStorage) {
messageStorage = [[MessageStorage alloc] init];
}
return messageStorage;
}
+ (instancetype)sharedInstance { // SubClass of MessageStorage
if (!msSend) {
msSend = [[MSSend alloc] init];
}
return msSend;
}
+ (instancetype)sharedInstance { // SubClass of MessageStorage
if (!msReceive) {
msReceive = [[MSReceive alloc] init];
}
return msReceive;
}
我想我没有正确设置sharedInstance
。
我需要做出哪些改变?
答案 0 :(得分:0)
将属性添加到MessageStorage
:
@interface MessageStorage : NSObject
@property NSString *someProperty;
@end
在子类中使用self.someProperty
引用它:
self.someProperty = @"Hello";
NSLog(@"someProperty=%@", self.someProperty);
如果要从另一个子类的实例引用该属性,则需要对该类实例的引用。从你的问题中可以清楚地知道如何实现这一点,所以我目前无法帮助解决这个问题。两个实例都来自同一个超类的事实并不重要;如果班级不是兄弟姐妹,也会出现同样的问题。
一旦你引用了另一个班级,它就是:
other.someProperty = @"Hola";