我有一个 ViewController (ViewController.m,它通过网络服务加载数据。 这些方法包含在 GetHTTP.m 中。
在 GetHTTP.m 中,我包含了 Reachable.h 以便在互联网连接中断时得到通知。
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(checkNetworkStatus:)
name:kReachabilityChangedNotification object:nil];
但是我如何从我的 GetHTTP::checkNetworkStatus 方法中发出警报,因为所有 View 都在我的 ViewController.m 类中?
可能我可以使用 ViewController 类中的一个方法作为我的选择器的目标,但是我从多个 ViewController 调用 GetHTTP,所以选择器目标每次从另一个 ViewClass 调用时都必须更改。
也许我错过了一个简单的 MVC 规则?
提前致谢。 基督徒
最佳答案
使用此代码发出警报消息
-(void) checkNetworkStatus:(NSNotification *)notice
{
recheabilityBool=FALSE;
nonrecheabilityBool=FALSE;
// called after network status changes
NetworkStatus internetStatus = [internetReachable currentReachabilityStatus];
switch (internetStatus)
{
case NotReachable:
{
nonrecheabilityBool=TRUE;
NSLog(@"The internet is down.");
[self checkAndCreateDatabase];
[self readLikeDislikeFromSyncDB];
UIAlertView *myAlert = [[UIAlertView alloc] initWithTitle:@"No Internet Connection" message:@"Please connect to the internet to experience all the features of this app." delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil];
[myAlert show];
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
Con=0;
[prefs setInteger:Con forKey:@"conKey"];
UINavigationController *navCon = [[UINavigationController alloc] initWithRootViewController:self.libraryViewController];
[navCon setNavigationBarHidden:YES];
[[self window] setRootViewController:navCon];
break;
}
case ReachableViaWiFi:
{
recheabilityBool=TRUE;
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
Con=404;
[prefs setInteger:Con forKey:@"conKey"];
[self performSelectorOnMainThread:@selector(storeLikeFromCTB) withObject:nil waitUntilDone:YES];
// [self deleteAllRecordsDB];
// [self performSelector:@selector(storeDisLikeFromCTB) withObject:nil afterDelay:0];
//[self performSelector:@selector(GetApps) onThread:[self myThread] withObject:nil waitUntilDone:YES];
//[self performSelector:@selector(GetApps) withObject:nil afterDelay:0];
[self performSelectorOnMainThread:@selector(updateToCTB) withObject:nil waitUntilDone:YES];
[self performSelectorOnMainThread:@selector(GetApps) withObject:nil waitUntilDone:YES];
//[self performSelector:@selector(gotoHome) withObject:nil afterDelay:0];
NSLog(@"The internet is working via WIFI.");
break;
}
case ReachableViaWWAN:
{
NSLog(@"The internet is working via WWAN.");
break;
}
}
NetworkStatus hostStatus = [hostReachable currentReachabilityStatus];
switch (hostStatus)
{
case NotReachable:
{
if( nonrecheabilityBool==FALSE)
{
[self checkAndCreateDatabase];
[self readLikeDislikeFromSyncDB];
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
Con=0;
[prefs setInteger:Con forKey:@"conKey"];
UINavigationController *navCon = [[UINavigationController alloc] initWithRootViewController:self.libraryViewController];
[navCon setNavigationBarHidden:YES];
[[self window] setRootViewController:navCon];
NSLog(@"A gateway to the host server is down.");
}
break;
}
case ReachableViaWiFi:
{
if(recheabilityBool==FALSE)
{
recheabilityBool=TRUE;
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
Con=404;
[prefs setInteger:Con forKey:@"conKey"];
[self performSelectorOnMainThread:@selector(storeLikeFromCTB) withObject:nil waitUntilDone:YES];
// [self performSelector:@selector(storeDisLikeFromCTB) withObject:nil afterDelay:0];
//[self performSelector:@selector(GetApps) onThread:[self myThread] withObject:nil waitUntilDone:YES];
//[self performSelector:@selector(GetApps) withObject:nil afterDelay:0];
[self performSelectorOnMainThread:@selector(updateToCTB) withObject:nil waitUntilDone:YES];
[self performSelectorOnMainThread:@selector(GetApps) withObject:nil waitUntilDone:YES];
//[self performSelector:@selector(gotoHome) withObject:nil afterDelay:0];
NSLog(@"The internet is working via WIFI.");
break;
}
NSLog(@"A gateway to the host server is working via WIFI.");
break;
}
case ReachableViaWWAN:
{
NSLog(@"A gateway to the host server is working via WWAN.");
break;
}
}
}
关于iphone - 当通信类中没有可用的 interetConnetion 时,ios 显示警报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13286129/
我得到了一个包含嵌套链接的表单。编辑时链接字段为空的问题。这是我的表格:Editingkategori{:action=>'update',:id=>@konkurrancer.id})do|f|%>'Trackingurl',:style=>'width:500;'%>'Editkonkurrence'%>|我的konkurrencer模型:has_one:link我的链接模型:classLink我的konkurrancer编辑操作:defedit@konkurrancer=Konkurrancer.find(params[:id])@konkurrancer.link_attrib
我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i
我好像记得Lua有类似Ruby的method_missing的东西。还是我记错了? 最佳答案 表的metatable的__index和__newindex可以用于与Ruby的method_missing相同的效果。 关于ruby-难道Lua没有和Ruby的method_missing相媲美的东西吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/7732154/
我构建了两个需要相互通信和发送文件的Rails应用程序。例如,一个Rails应用程序会发送请求以查看其他应用程序数据库中的表。然后另一个应用程序将呈现该表的json并将其发回。我还希望一个应用程序将存储在其公共(public)目录中的文本文件发送到另一个应用程序的公共(public)目录。我从来没有做过这样的事情,所以我什至不知道从哪里开始。任何帮助,将不胜感激。谢谢! 最佳答案 无论Rails是什么,几乎所有Web应用程序都有您的要求,大多数现代Web应用程序都需要相互通信。但是有一个小小的理解需要你坚持下去,网站不应直接访问彼此
我有一个奇怪的问题:我在rvm上安装了rubyonrails。一切正常,我可以创建项目。但是在我输入“railsnew”时重新启动后,我有“程序'rails'当前未安装。”。SystemUbuntu12.04ruby-v"1.9.3p194"gemlistactionmailer(3.2.5)actionpack(3.2.5)activemodel(3.2.5)activerecord(3.2.5)activeresource(3.2.5)activesupport(3.2.5)arel(3.0.2)builder(3.0.0)bundler(1.1.4)coffee-rails(
我想在一个没有Sass引擎的类中使用Sass颜色函数。我已经在项目中使用了sassgem,所以我认为搭载会像以下一样简单:classRectangleincludeSass::Script::FunctionsdefcolorSass::Script::Color.new([0x82,0x39,0x06])enddefrender#hamlengineexecutedwithcontextofself#sothatwithintemlateicouldcall#%stop{offset:'0%',stop:{color:lighten(color)}}endend更新:参见上面的#re
所以我在关注Railscast,我注意到在html.erb文件中,ruby代码有一个微弱的背景高亮效果,以区别于其他代码HTML文档。我知道Ryan使用TextMate。我正在使用SublimeText3。我怎样才能达到同样的效果?谢谢! 最佳答案 为SublimeText安装ERB包。假设您安装了SublimeText包管理器*,只需点击cmd+shift+P即可获得命令菜单,然后键入installpackage并选择PackageControl:InstallPackage获取包管理器菜单。在该菜单中,键入ERB并在看到包时选择
我试图在索引页中创建一个超链接,但它没有显示,也没有给出任何错误。这是我的index.html.erb代码。ListingarticlesTitleTextssss我检查了我的路线,我认为它们也没有问题。PrefixVerbURIPatternController#Actionwelcome_indexGET/welcome/index(.:format)welcome#indexarticlesGET/articles(.:format)articles#indexPOST/articles(.:format)articles#createnew_articleGET/article
我是rails的新手,想在form字段上应用验证。myviewsnew.html.erb.....模拟.rbclassSimulation{:in=>1..25,:message=>'Therowmustbebetween1and25'}end模拟Controller.rbclassSimulationsController我想检查模型类中row字段的整数范围,如果不在范围内则返回错误信息。我可以检查上面代码的范围,但无法返回错误消息提前致谢 最佳答案 关键是您使用的是模型表单,一种显示ActiveRecord模型实例属性的表单。c
我在app/helpers/sessions_helper.rb中有一个帮助程序文件,其中包含一个方法my_preference,它返回当前登录用户的首选项。我想在集成测试中访问该方法。例如,这样我就可以在测试中使用getuser_path(my_preference)。在其他帖子中,我读到这可以通过在测试文件中包含requiresessions_helper来实现,但我仍然收到错误NameError:undefinedlocalvariableormethod'my_preference'.我做错了什么?require'test_helper'require'sessions_hel