天道酬勤,学无止境

objective-c

iOS Objective-C get VPN IP programmatically

问题 我使用第三方应用连接VPN,详细信息可以在Settings->VPN->information中获取。 如何通过 Objective-C 在我们的应用程序中以编程方式获取Assigned IP ? 回答1 NSString *address = @"error"; struct ifaddrs *interfaces = NULL; struct ifaddrs *temp_addr = NULL; int success = 0; // retrieve the current interfaces - returns 0 on success success = getifaddrs(&interfaces); if (success == 0) { // Loop through linked list of interfaces temp_addr = interfaces; while (temp_addr != NULL) { if( temp_addr->ifa_addr->sa_family == AF_INET) { // Check if interface is en0 which is the wifi connection on the iPhone if ([[NSString stringWithUTF8String:temp_addr->ifa

2022-07-11 09:51:30    分类:技术分享    ios   objective-c   vpn

Simple Regex problem that I just CAN'T figure out

问题 我有一个很简单的问题,我需要解析这个字符串: "user_id" => "BXoVWYg-T_QS" 并且只抓取BXoVWYg-T_QS 到目前为止,我已经使用正则表达式从一个更大的字符串中获取了这么多,但我不知道如何将它归结为 user_id 字符串的内容 这是我到目前为止的正则表达式: "user_id" => ".*" 请帮忙! 更新我有一个 html 字符串,我试图在 Objective-c 中解析一个 iPhone 应用程序。 如果我能把正则表达式的语法记下来,我的问题就会得到解决 回答1 "user_id" => "([^"]*)" 回答2 您需要使用这样的括号来指示您的捕获: "user_id" => "(.*)" 然后,您可以找到该匹配项。 你在使用 JavaScript、Perl、C#、??? 回答3 问题是.*是贪婪的——所以它会抓取你的行/字符串中最后一个可用的" (取决于你使用的模式)。 您需要的是: A)使正则表达式不贪婪。 .*? 在某些平台上会这样做。 B)从您要匹配的字符列表中明确排除" : "user_id" => "([^"]*)"是您想要的。

2022-05-17 02:58:35    分类:技术分享    iphone   objective-c   regex   string

How to figure out the current caret position in a UITextField?

问题 我想以编程方式将字符串粘贴到当前插入符号位置的文本字段或文本视图中。 是否有捷径可寻? 我需要知道当前插入符号的位置,但没有办法检索它,对吧? 不想调用私有 API。 有什么合法的方法可以做到吗? 回答1 回答2

2022-05-17 02:51:23    分类:技术分享    iphone   objective-c   ios   uitextfield

iOS 10.3 text to speech works on simulator but not on device

问题 我正在调用法语的文本到语音。 这可以按预期工作: iOS 9.3模拟器、 iOS 9.3设备( iPad 3rd gen )、 iOS 10.3模拟器。 在iOS 10.3设备 ( iPhone 6s ) 上不起作用(静默)。 默认法语语音已安装并根据设备设置工作。 static AVSpeechSynthesizer* synthesizer = NULL; //... +(void)readText:(NSString*)text { if(synthesizer == NULL) synthesizer = [[AVSpeechSynthesizer alloc] init]; AVSpeechUtterance *utterance = [AVSpeechUtterance speechUtteranceWithString:text]; utterance.voice = [AVSpeechSynthesisVoice voiceWithLanguage:@"fr-FR"]; [synthesizer speakUtterance:utterance]; } 回答1 回答2 在您的 .h 文件中添加AVSpeechSynthesizer* synthesizer = NULL; 你很高兴 - 我已经测试过了..它工作得非常好:) 转到您的 .h 文件并添加

2022-05-17 02:47:29    分类:技术分享    ios   objective-c   iphone   text-to-speech

From an XCUITest how can I check the on/off state of a UISwitch?

问题 我最近遇到了一种情况,我需要能够从现有的 XCUITests 存储桶中检查 UISwitch 的当前开/关状态(而不是是否启用了用户交互),而不是 XCTest,并将其切换到预先确定的状态。 我已将应用程序状态恢复添加到旧的现有应用程序中,这现在干扰了运行之间的许多现有测试用例,这些测试用例预期 UISwitches 在特定的默认状态下。 与 XCTest 不同,在 XCUITest 中您不能直接访问 UISwitch 状态。 XCUITest 在 Objective-C 中是如何确定这种状态的? 回答1 斯威夫特 5 版本: XCTAssert((activationSwitch.value as? String) == "1") 或者,您可以使用XCUIElement扩展 import XCTest extension XCUIElement { var isOn: Bool? { return (self.value as? String).map { $0 == "1" } } } // ... XCTAssert(activationSwitch.isOn == true) 回答2 未能在任何地方发现这一点很明显,我在这篇博客文章中遇到了 Swift 语言的类似情况。 Xcode UITests:如何检查 UISwitch 是否打开 有了这些信息

2022-05-17 02:37:16    分类:技术分享    objective-c   xcode-ui-testing   uiswitch

iOS get audio duration from avplayer

问题 我是 ios 新手,我有一个包含在线音频播放器的应用程序。 我需要获取音频的总持续时间。 我已经尝试了很多,但所有代码都返回NaN或0持续时间。 获得音频总持续时间的最佳方法是什么..? 我的代码 NSString *songUrl = @"http://9xmusiq.com/songs2/tamil/Kaatru%20Veliyidai/Azhagiye%20%5bStarmusiq.cc%5d.mp3" AVURLAsset *asset = [AVURLAsset assetWithURL:[NSURL URLWithString:songUrl]]; AVPlayerItem *playerItem1 = [AVPlayerItem playerItemWithAsset:asset]; AVPlayer *player1 = [AVPlayer playerWithPlayerItem:playerItem1]; AVPlayerLayer *playerLayer1 = [AVPlayerLayer playerLayerWithPlayer:player1]; playerLayer1.videoGravity = AVLayerVideoGravityResizeAspectFill; dispatch_after(dispatch_time

2022-05-17 02:29:17    分类:技术分享    ios   objective-c   avplayer   avplayeritem   avplayerlayer

how to reuse the same table view in different views?

问题 回答1

2022-05-17 00:46:12    分类:技术分享    iphone   objective-c   ios4   ipad

xctest This app has attempted to access privacy-sensitive data without a usage description

问题 我正在尝试使用单元测试 (xctest) 测试 CoreLocation,但未能通过权限阶段。 我特别收到一条假定的错误消息,见下文(*)。 我正在调整 authorizationStatus 方法,但这对我不起作用。 [MySwizzler swizzleClass:[CLLocationManager class] method:@"authorizationStatus" instanceMethod:NO]; + (CLAuthorizationStatus)override_authorizationStatus { return myAuthorizationStatus; } 一旦我请求授权: [[self locationManager] requestWhenInUseAuthorization]; 我收到回调: -(void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status { 状态是: kCLAuthorizationStatusRestricted 我的 swizzled 方法永远不会被调用,我在日志中收到这条消息: (*)“这个应用程序试图在没有使用说明的情况下访问隐私敏感数据。应用程序的

2022-05-16 23:17:09    分类:技术分享    ios   objective-c   core-location   xctest

iOS: Could not get outgoing call events in CallKit

问题 我正在使用“telprompt”通过我的应用程序进行调用,但是当调用结束时,我希望显示一个新的视图控制器并点击一个 API 来获取数据,所以我想接收一个事件来打开一个弹出窗口并点击 API . 我曾尝试使用 CallKit,但没有调用委托方法。 这是我的代码。 #import <CallKit/CXCallObserver.h> #import <CallKit/CXCall.h> 我已经符合 CXCallObserverDelegate 在 viewDidLoad 中: CXCallObserver *callObserver = [[CXCallObserver alloc] init]; [callObserver setDelegate:self queue:nil]; 委托方式: - (void)callObserver:(CXCallObserver *)callObserver callChanged:(CXCall *)call { if (call.hasConnected) { NSLog(@"********** voice call connected **********/n"); } else if(call.hasEnded) { NSLog(@"********** voice call disconnected **********/n")

2022-05-16 22:41:09    分类:技术分享    ios   objective-c   iphone   ios10   callkit

Is there an easy way to programmatically get the alphabet?

问题 foreach(range('A','Z') as $i) $alphabet[]=$i; 回答1 NSMutableArray *alphabets = [[NSMutableArray alloc] initWithArray:[[UILocalizedIndexedCollation currentCollation] sectionIndexTitles]]; //Remove the last object (extra), '#' from the array. [alphabets removeLastObject]; 回答2 没有比全部输入更快的方法了,除非您从下面剪切并粘贴我方便的参考! “abcdefghijklmnopqrstuvwxyz” 为了它,这里有一条更长的路。 for (char a = 'a'; a <= 'z'; a++) { [myArray addObject:[NSString stringWithFormat:@"%c", a]]; } 回答3 NSArray *letters = [@"A B C D E F G H I J K L M N O P Q R S T U V W X Y Z" componentsSeparatedByString:@" "]; 回答4 int a = 65; for (; a < 91; a++)

2022-05-16 20:58:12    分类:技术分享    iphone   objective-c   alphabet