0

iOS 有一个预先声明的属性,如下所示:

@property(nonatomic, readonly) UIInterfaceOrientation interfaceOrientation;

我可以为我的项目修改它@property(nonatomic) UIInterfaceOrientation interfaceOrientation;,然后interfaceOrientation在我的类的不同控制器方法中为“”变量分配不同的值吗?

如果我修改现有属性是否会产生问题?

另外,在谷歌搜索时,我在某处读到,如果 @property(nonatomic) 未使用“readonly”关键字声明,则默认情况下它是读写的。此规则是否仅适用于开发人员定义的属性而不适用于预定义的属性?

4

2 回答 2

1

不,如果它是只读的,那是有原因的。要提供不同的行为,您应该继承UIViewController并覆盖指定的方法[1] [2]

- (NSUInteger)supportedInterfaceOrientations
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
于 2012-09-19T20:09:43.337 回答
1

不幸的是,这是不可能的。由于 Cocoa Touch 是基于设计模式构建的(在我们的例子中是 Open Close Principle,更多信息请参见http://www.oodesign.com/open-close-principle.html),这将违反其中之一。您可以添加更多功能/特性,但不能修改现有功能/特性。希望有帮助

于 2012-09-19T20:13:58.663 回答