我需要一些关于开发iOS应用程序设计的最佳实践的建议
这就是我正在处理的问题:当iOS设备丢失互联网连接(或者没有互联网连接)时,我希望我的应用程序进入某种离线模式,即发送一些事件,发送一些NSNotifications,mb显示某种类型的警报等.因此,当iOS设备获得它的连接时我想要相反的东西 - 将我的应用程序移动到某种在线模式.
所以,我想要的是能够从我的一些ViewControllers中访问应用程序模式(即检查应用程序是在线还是离线).我正在考虑两种存储应用程序状态的方法:
1)拥有一些AppDelegate的属性,并通过我的AppDelegate从任何地方访问它.AFAIK,这是一种错误的方法,因为AppDelegate不应该用作应用程序的全局对象,而是用于启动初始化和控制应用程序的状态更改.
2)将此信息存储在模型级别.但我不知道为了这个目的我应该在Model级别上使用什么.我不认为使用Core Data或NSUserDefaults是一个好主意,因为我不希望这个属性是持久的,我只在当前的应用程序运行期间需要它.除了Core Data和NSUserDefaults之外,我实际上并不了解任何其他模型级技术.
我没有包含任何代码示例,因为它主要是一个理论问题.
您可以使用单例模式并将变量存储为属性
例如
@interface GlobalData : NSObject
@property BOOL connectionAvailable;
+ (GlobalData *)sharedInstance;
@end
@implementation
+ (GlobalData *)sharedInstance {
static GlobalData *sharedInstance;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
sharedInstance = [[GlobalData alloc] init];
});
return sharedInstance;
}
@end
// --- in some method
[GlobalData sharedInstance].connectionAvailable = /* connection state */;
// --- in some other method
BOOL connectionAvailable = [GlobalData sharedInstance].connectionAvailable;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
856 次 |
| 最近记录: |