目标 c - 一个类与另一个类的设置值



ClassA.m

ClassB *CB = [[ClassB alloc]init];
CB.name = @"my name";
[self presentViewController:CB animated:YES completion:nil];

班B.h

@interface ClassBViewController : UIViewController
@property (nonatomic, strong) NSString *name;
@end

此代码工作正常,但是从A类CB.name = @"my name";在B类中设置值是正确的方法吗?

通过将属性定义为强属性,您可以保留对对象的强引用。

考虑一下如果有人给你一个NSMutableString会发生什么。您保留对它的引用,然后他们稍后更改它。你不再有他们给你的字符串。

如果你使用复制而不是,你会强制复制对象(如果他们给你一个不可变的对象,通常会被优化掉),这意味着你总是保留你实际得到的东西。

对于属性,我发现写 [CB setName:@"my name"] 更清晰。您需要在 ClassB.m 文件中有一个 @synthesize 语句,以便编译器为您的属性创建一个 getter 和一个 setter。

这实际上是唯一的方法。 Class AClass B的属性一无所知,所以一个Class B的对象必须在Class A内部实例化才能访问它的属性。

相关内容

  • 没有找到相关文章

最新更新