我是核心数据的新手,仍在搞清楚螺母和螺栓,这个错误一直困扰着我几个小时,我似乎无法找到解决方案.任何帮助是极大的赞赏.
问题是这样的
我有两个视图从服务器获取数据并更新UI.我已经用这种方式建立了流程
view1 - >从服务器发送HTTP请求 - 接收回调 - >将数据保存到Coredata - >从核心数据读取并在UI上显示(回调和保存/读取Coredata发生在ViewController中)
view2 - >从服务器发送HTTP请求 - 接收回调 - >将数据保存到Coredata - >从核心数据读取并在UI上显示(回调和保存/读取Coredata发生在ViewController中)
视图2每3秒重复此过程,因为这是一个自动刷新屏幕.
问题是每当我尝试快速切换视图1和2时,它会因上述错误而崩溃应用程序.如果我在每个视图上等待几秒钟(等待从服务器获取数据),它可以正常工作.我做错了什么,我需要修改什么?
- (void) refreshData {
[super refreshData];
[[UserDataFactory sharedSingleton] refreshLoggedInUserDataAndRespondTo:self user:self.user];
}
- (BOOL) refreshDataCallback:(QExtendedHTTPOperation*)responseOperation {
[self saveToCoreData: responseOperation.responseArray];
NSMutableArray *tmp = [[NSMutableArray alloc] initWithArray:[self readFromCoreData]];
[self setData: tmp];
[tmp release];
[self.tableView reloadData];
return YES;
}
- (void) saveToCoreData:(NSArray *) responseArray{
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"CoreView1" inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entity];
[fetchRequest setReturnsObjectsAsFaults:NO];
NSError …Run Code Online (Sandbox Code Playgroud) 在我的应用程序中,我以编程方式根据用户操作(例如登录/注销功能)更改根视图控制器.
在iOS 8中 - 我注意到一个奇怪的问题.即使在窗口上设置rootViewController之后,旧的层次结构仍然存在.我只是通过捕获视图层次结构来验证它.
- (void) logout{
[self.window setRootViewController:[self loadLoginView]];
}
-(UIViewController *) loadLoginView{
WelcomeScreenVC *wsVC;
wsVC = [[WelcomeScreenVC alloc] initWithNibName:@"WelcomeScreenVC" bundle:nil];
UINavigationController *onboardingVC = [[UINavigationController alloc]initWithRootViewController:wsVC];
return onboardingVC;
}
Run Code Online (Sandbox Code Playgroud)
即使在执行此行代码后,旧的登录视图层次结构仍然存在.如果有人能够提出幕后发生的事情,我将不胜感激.
编辑:我只看了UIWindow setRootViewController文档,这里是Apple对它的评价:
根视图控制器提供窗口的内容视图.将视图控制器分配给此属性(以编程方式或使用Interface Builder)将视图控制器的视图安装为窗口的内容视图.如果窗口具有现有视图层次结构,则在安装新视图之前将删除旧视图.
昨天我正在玩three20图书馆.我点击命令+进入构建并在我的模拟器上运行应用程序,令我惊讶的是它在我的设备iPod Touch第四代上安装了应用程序.我真的不知道发生了什么,我尝试用我的其他项目做的很少不幸的是它没有用.
今天,我从Apple的开发者网站下载了快速联系人示例代码,同样的事情发生了,我可以在我的设备上安装该应用程序,无需任何配置.我看到,对于上述两个项目(三个20和快速联系人),我的设备列在活动的可执行文件中.
但对于其他项目,我的设备未列出.我尝试在其他设备上运行上述两个应用程序,这些应用程序失败并显示一条消息 - "未找到配置的iOS设备".我的设备不是越狱,它是我几天前买的一个全新的设备.
我错过了什么,因为能够安装应用程序而不通过Apple的门户网站是一个巨大的奖金,我也希望为我的其他应用程序实现相同的功能.
我尝试附加截图,但看起来我至少需要10分才能这样做而且我是新来的.抱歉.