Tag: Objective C

检测运营商连接types(3G / EDGE / GPRS)

我如何获得运营商networking的连接types? 我能够得到如果连接是使用Reachability类的WIFI或WWAN 我能够获得networking标志 可达性标志状态:WR t —— localWiFiStatusForFlags 我能够使用CaptiveNetwork获得WIFI SSID 支持的接口:(en0) en0 => { BSSID = "xx:xx:xx:xx:xx:xx"; SSID = MyWifiNetwork; SSIDDATA = <x1x1x1x1 x1x1x1x1 x1>; } 但我无法区分3G,EDGE或GPRS连接。 任何想法也使用iOS私人API? 谢谢。

XMPPFramework – 实现群聊(MUC)

我正在iOS聊天客户端上工作。 任何人都可以请帮我多用户聊天? 我已经实现了Robbiehanson的XMPPFramework。 任何人都可以让我知道如何获得组的列表,并创build一个在这个框架的服务器组? 提前致谢。

iOS 8 SDK:模态UIWebView和相机/图像select器

我发现,编译iOS 8(并在iOS 8中运行)时, UIWebView无法显示相机/图像select器,如果UIWebView在模态呈现的视图控制器中。 它可以在视图控制器中直接从窗口rootViewController或从其中推送的视图控制器中“挂起”,而没有问题。 testing应用程序可以在https://dl.dropboxusercontent.com/u/6214425/TestModalWebCamera.zipfind,但我会在下面描述。 我的testing应用程序(用故事板构build,但真正的应用程序不使用它们)有两个视图控制器(非原名称的ViewController和ViewController2 )。 ViewController包含在作为根视图控制器的UINavigationController中。 ViewController包含一个UIWebView (工作正常),一个“显示”(“推”)button和一个UIBarButtonItem ,它模态地呈现ViewController2 。 ViewController2有另一个UIWebView ,当“推”,而不是“呈现”时,工作。 ViewController和ViewController2都加载了: – (void)viewDidLoad { [super viewDidLoad]; [self.webView loadHTMLString:@"<input type=\"file\" accept=\"image/*;capture=camera\">" baseURL:nil]; } 当试图使用模式UIWebView Xcode在控制台中打印以下内容并解散应用程序模式: Warning: Attempt to present <UIImagePickerController: 0x150ab800> on <ViewController2: 0x14623580> whose view is not in the window hierarchy! 我目前的理论是, UIActionSheet到UIAlertController的变化可能产生了这种情况,但是很难certificate。 以防万一,我会打开雷达与苹果,以防万一。 有人发现相同的情况和一些解决方法?

只有一个查看横向模式

我完成了我的iOS应用程序,但我只需要设置一个视图到横向模式,剩下的视图只能在纵向模式下看到。 我正在使用Xcode 5.1,并通过从右侧面板放置在Storyboard View Controller中创build了所有的视图,所以如果您要告诉我在某处编写一些代码,请告诉我在哪里需要编写代码。 我在这里阅读一个解决schemeUINavigationController强制旋转,但我不知道在哪里写代码。 我需要手动创build一个UIViewController吗?

CaptiveNetwork弃用后,如何在iOS9中获取Wifi SSID,并且呼叫Wifi名称已被阻止

直到今天,我使用CaptiveNetwork接口来显示当前连接的Wifi的名称。 iOS 9预发布参考文件已经提到,CaptiveNetwork的方法现在已经被剥夺了,但是它们仍然在开始工作。 苹果似乎已经阻止了这个电话的最新版本(也许是由于隐私问题?)。 有没有其他的方式来获得当前的Wifi的名称? 这是我直到今天获得SSID的方式,但现在你只能得到零: #import <SystemConfiguration/CaptiveNetwork.h> NSString *wifiName = nil; NSArray *interFaceNames = (__bridge_transfer id)CNCopySupportedInterfaces(); for (NSString *name in interFaceNames) { NSDictionary *info = (__bridge_transfer id)CNCopyCurrentNetworkInfo((__bridge CFStringRef)name); if (info[@"SSID"]) { wifiName = info[@"SSID"]; } }

应用程序转到后台后,每n分钟获取一次用户位置

我正在尝试实施本文中给出的build议。 不幸的是,我不清楚这些步骤。 我尝试实施这些build议,但即使在启动和停止locationServices后,backgroundTimeRemaining仍在继续减less。 这是我开发它的方式: – (void)applicationDidEnterBackground:(UIApplication *)application { UIApplication* app = [UIApplication sharedApplication]; bgTask = [app beginBackgroundTaskWithExpirationHandler:^{ [app endBackgroundTask:bgTask]; bgTask = UIBackgroundTaskInvalid; }]; // Start the long-running task and return immediately. dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ // Do the work associated with the task. self.timer = nil; [self initTimer]; }); } initTimer: – (void)initTimer { // Create […]

我如何自定义iOS警报视图?

我想在我的iOS应用程序中创build一个自定义alert view 。 例如,我想在此alert放入一些images ,并更改其颜色。 我知道如何创build一个正常的UIAlertView ,但有没有办法自定义一个alert view ?

使用hitTest:withEvent捕获超级视图框架外部的子视图:

我的问题:我有一个基本上占用了整个应用程序框架的一个EditView视图EditView和一个子视图MenuView ,它只占用底部ButtonView %,然后MenuView包含它自己的子视图ButtonView ,它实际上驻留在MenuView的界限之外像这样: ButtonView.frame.origin.y = -100 )。 (注意: EditView有其他的子视图不是MenuView的视图层次结构的一部分,但可能会影响答案。) 你可能已经知道这个问题了:当ButtonView在MenuView的范围内(或者更确切地说,当我的触摸在MenuView的范围内时), ButtonView响应触摸事件。 当我的触摸在MenuView的边界之外(但仍在ButtonView的边界内)时, ButtonView没有接收到触摸事件。 例: (E)是EditView ,它是所有视图的父视图 (M)是MenuView ,EditView的子视图 (B)是ButtonView ,MenuView的子视图 图: +——————————+ |E | | | | | | | | | |+—–+ | ||B | | |+—–+ | |+—————————-+| ||M || || || |+—————————-+| +——————————+ 因为(B)在(M)的框外,所以(B)区域的抽头将不会被发送到(M) – 实际上,(M)在这种情况下从不分析触摸,触摸被发送到层次结构中的下一个对象。 目标:我收集的压倒性hitTest:withEvent:可以解决这个问题,但我不明白如何。 在我的情况,应该hitTest:withEvent:在EditView (我的'主'超视图)重写? 或者应该在MenuView中重写,没有接收的button的直接超视图接触? 还是我错误地想这个? […]

当键盘出现时,如何滚动UIScrollView?

我的代码有问题。 我在编辑应该被键盘popup窗口隐藏的UITextField时试图移动UIScrollView 。 我现在正在移动主框架,因为我不知道如何在代码中向上滚动。 所以,我做了一些代码,工作正常,但是当我编辑一个UItextfield,并切换到另一个UITextField而不按下“返回”button主视图waaayyyyy到遥远的地方。 我做了一个NSLog()与我的variables大小,距离和textFieldRect.origin.y,你可以看到下面。 当我把两个UITextField放在同一个地方(Y起源),我做这个特定的“开关”(没有按回车),我得到了相同的数字,而我的代码工作正常的第一个UITextField编辑,但不是第二次编辑。 看一下这个: – (void)textFieldDidBeginEditing:(UITextField *)textField { { int size; CGRect textFieldRect = [self.view.window convertRect:textField.bounds fromView:textField]; size = textFieldRect.origin.y + textFieldRect.size.height; if (change == FALSE) { size = size – distance; } if (size < PORTRAIT_KEYBOARD_HEIGHT) { distance = 0; } else if (size > PORTRAIT_KEYBOARD_HEIGHT) { distance = size […]

为什么NSDateFormatter在巴西时区为19/10/2014返回null?

NSString *dateString = @"19/10/2014"; NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"dd/MM/yyyy"]; NSDate *myDate = [dateFormatter dateFromString:dateString]; 为什么myDate在这个特定的date为空(19/10/2014)? 如果我将dateString更改为@"25/10/2014" ,则dateFormatter正确返回date…我的代码有什么问题? *当我的iPhone时区是“巴西利亚,巴西”时,此代码返回null。 例如,当我的时区是“华盛顿特区,EUA”时,代码会返回正确的date。