例如一个Person
类有一个属性@property (strong, nonatomic) NSString *name;
和两个方法:一个初始化方法- (instancetype)initWithName:(NSString *)name;
而另一种方法- (void)doSomethingWithName:(NSString *)name;
如下:传递属性与本地变量作为方法参数
- (instancetype)initWithName:(NSString *)name
{
self = [super init];
if (self) {
self.name = name;
[self doSomethingWithName:name];
}
return self;
}
- (void)doSomethingWithName:(NSString *)name
{
NSLog(@"My name is: %@", name)
}
而在这种情况下,我们传递的局部变量name
从- initWithName:
到- doSomethingWithName:
,我们可以实现同样的结果通过self.name
到- doSomethingWithName:
。事实上,我们甚至可以重写- doSomethingWithName:
方法,例如:
- (void)doSomethingWithName
{
NSLog(@"My name is: %@", self.name)
}
哪些方法被认为是最佳做法,为什么?
(个人意见):我通常会建议将它作为参数。这可让您在课堂内外进行的任何更改中拥有更大的灵活性。 – Linuxios