我想改变我UIWebView要WKWebView在我的应用程序(Objective-C)。我看到WKWebView包含标签“a”和标签“a”内部包含标签“图像”:
<a href="http://click.adzcore.com/xyz"><img src="http://www.abc.xyz/smart/images/bnr/yyy.png" width="320" height="50" border="0" alt="+alt[n]+" onclick="_gaq.push(['_trackPageview','/smart/count/frognote']);"></a>
Run Code Online (Sandbox Code Playgroud)
我想检测用户点击图像的时间,所以我这样做:
- (void)webView:(WKWebView )webView decidePolicyForNavigationAction:(WKNavigationAction )navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler {
if (navigationAction.navigationType == WKNavigationTypeLinkActivated) {
NSURL *url = navigationAction.request.URL;
[[UIApplication sharedApplication] openURL:url];
decisionHandler(WKNavigationActionPolicyCancel);
return;
}
decisionHandler(WKNavigationActionPolicyAllow);
}
Run Code Online (Sandbox Code Playgroud)
但是这段代码是不正确的,因为WKNavigationTypeLinkActivated当用户点击图像时没有被捕获。
/Users/Alex/Library/Developer/Xcode/DerivedData/MyProject-ehabmnclpzlywhabrefntacibonm/Build/Intermediates.noindex/ArchiveIntermediates/Fuego/InstallationBuildProductsLocation/Applications//MyProject.app/Frameworks/Alamofire.framework: unknown error -1=ffffffffffffffff
Command /bin/sh failed with exit code 1
Run Code Online (Sandbox Code Playgroud)
我存档项目时遇到了这个问题.当我在模拟器上运行应用程序时,没有上述问题就可以正常工作.
它也适用Xcode 8,但现在当我尝试存档它Xcode 9我有这个问题.但也许情况并非如此,因为我Mac OS从头开始重新安装,所以它可能是cocopods版本问题我不确定.
//上面例子中的两个对我来说也很奇怪/Applications//MyProject.app
我将应用程序从一个屏幕切换UISearchBar到UISearchController.这是一个tableview控制器.根据设计,我不应该首先在UI上保留搜索栏,除非它被激活,(通常将搜索栏保持为'tableHeaderView'是一种常见的做法).问题是,我有一个搜索按钮,当点击'搜索栏'应该被激活并成为第一响应者.
点击取消按钮时,应从UI中删除它.然而,当我点击导航栏上的"搜索栏按钮"时,UISearchController会激活,提供暗淡的背景但键盘不会出现.我需要再次点击搜索栏以在UI上显示键盘.
这是我的搜索栏按钮动作:
@IBAction func onTapSearch(_ sender: AnyObject) {
self.view.addSubview(searchController.searchBar)
searchController.isActive = true
searchController.becomeFirstResponder()
isSearchActive = true
self.navigationController?.setToolbarHidden(true, animated: false)
}
Run Code Online (Sandbox Code Playgroud)
我UISearchController在我的viewDidLoad方法中配置.如果您想要查看该部分代码,请告诉我,但这是通常的代码.我确认我不会在resignFirstResponder()任何地方调用任何方法.
我在iOS应用程序中遇到一些性能问题,同时将2013-12-19 00:00:00.000000格式化的日期转换为中等样式日期(Dec 25, 2014)和双倍值(epoch).根据Xcode分析器,执行此过程的两个函数(下图)占用了大约60%的执行时间
我想知道如何改进此代码,或者是否有更有效的方法来获得我需要的东西.
static func getMediumDate(dateString: String) -> (NSString)? {
// Get the: yyyy-MM-dd
let shorDate = dateString[dateString.startIndex..<dateString.startIndex.advancedBy(10)]
let dateFormatter = NSDateFormatter()
dateFormatter.locale = NSLocale(localeIdentifier: "en_US")
dateFormatter.dateFormat = "yyyy-MM-dd"
let stringFormatter = NSDateFormatter()
stringFormatter.locale = NSLocale(localeIdentifier: "en_US")
stringFormatter.dateFormat = "yyyy-MM-dd"
stringFormatter.dateStyle = .MediumStyle
let newDate = dateFormatter.dateFromString(shorDate)
if (newDate != nil){
return stringFormatter.stringFromDate(newDate!)
}else{
return nil
}
}
static func getSortDate(dateString:String) -> Double{
// Get the: yyyy-MM-dd
let shorDate = dateString[dateString.startIndex..<dateString.startIndex.advancedBy(10)]
let dateFormatter = …Run Code Online (Sandbox Code Playgroud) 我有viewController1,viewController2哪个是modaly呈现,我想在解雇第二个时使用完成处理程序,但我无法获得实现.我以为我必须编写一个函数并将其放在那里:
viewController.dismissViewControllerAnimated(true, completion: funcToCall())
Run Code Online (Sandbox Code Playgroud)
但后来我收到这个错误:
无法将类型'()'的值转换为预期的参数类型'(() - > Void)?'
任何人都可以解释我,我怎样才能正确执行完成处理程序?
ios ×5
swift ×3
alamofire ×1
cocoapods ×1
objective-c ×1
performance ×1
swift3 ×1
uisearchbar ×1
watchkit ×1
watchos ×1
wkwebview ×1
xcode ×1
xcode9 ×1