1.float和double的精度问题。
在开发中我遇到一个问题就是四位或者五位小数的字符串转换成float后相加,在转换成字符串,数值不正确。我开始以为是后台返回数据的问题,打印出来发现不是。只能想到是精度的问题。这时候我就转换成double类型,发现结果就不会出错了。
2.iOS自建证书不被苹果认可,webview加载报错。
在测试中发现一个问题,一个链接https在wkwebview中打不开。在浏览器中能打开,后来发现是webview的代理中报错。显示Error Domain=NSURLErrorDomain Code=-1202,Https服务器证书无效,
NSURLErrorDomain Code=-1202 "The certificate for this server is invalid. You might be connecting to a server that is pretending to be “https:jkjlkjlkjljlj” which could put your confidential information at risk."
错误信息的大致翻译就是
错误:“此服务器的证书无效。您可能正在连接到一个伪装成“www.xxxxxx.com”的服务器, 这会威胁到您的机密信息的安全
网上一查发现也有很多这样的问题,但是大多都是直接从网络层开始的。直接设置各种代理。
参考链接如下: //这两个直接调用私有API,不推荐,会造成审核被拒 链接一:https://www.jianshu.com/p/d97b1786216f 链接二:https://www.cocoanetics.com/2009/11/ignoring-certificate-errors-on-nsurlrequest/ 下面几个我未试验(一是因为有的时间很早好几年了,二是因为大多是直接设置网络层,而我的情况只是这个webiview加载不出来,不需要通篇设置) 链接三:https://www.jianshu.com/p/3105e0843c6b 链接四:http://www.qingpingshan.com/rjbc/ios/181533.html 链接五:https://blog.csdn.net/qq_32531823/article/details/50730745
上面也说了,我只是webview加载不出来,网络请求不报错。解决方法如下:
// 在webview的代理中设置一下 // oc - (void)webView:(WKWebView *)webView didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge completionHandler:(void (^)(NSURLSessionAuthChallengeDisposition disposition, NSURLCredential * _Nullable credential))completionHandler{ if ([challenge.protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust]) { NSURLCredential *card = [[NSURLCredential alloc]initWithTrust:challenge.protectionSpace.serverTrust]; completionHandler(NSURLSessionAuthChallengeUseCredential,card); } } // swift func webView(_ webView: WKWebView, didReceive challenge: URLAuthenticationChallenge, completionHandler: @escaping (URLSession.AuthChallengeDisposition, URLCredential?) -> Void) { if challenge.protectionSpace.authenticationMethod == NSURLAuthenticationMethodServerTrust { let card = URLCredential.init(trust: challenge.protectionSpace.serverTrust!) completionHandler(URLSession.AuthChallengeDisposition.useCredential,card) } }
3.tableviewcell上的按钮能显示,但是点击无效果,而代理方法去有效果
这时候就要看看图层,看看按钮的位置对不对
我就是这样,先看了看没有遮盖,感觉正确,然后就像网上说的把加在cell上的视图加在cell的contenview上 还是不行
后来看了看图层 把这个按钮加在backview上,但是这个按钮的位置超出了backview。
而我的cell设置偏大 虽然是显示出了按钮 但是按钮却不在backview上 所以不能点击
这时候就改下backview或者把按钮加在cell上就可以了
4.tabbar设置图片问题
在不设置图片的imageedge的情况下有时候会出现图片大小有偏差的情况。有时候也会出现点击图片后视觉感觉图片发生偏差的情况,还有可能在使用第三方和系统tabbar混用是出现大小不一致的情况
这时候很大的可能是图片的问题。
我的解决方法 设置2倍48*48 3倍72*72 这时候设置就差不多了
具体原因未知
5.self.title和self.navigationItem.title
今天遇到一个很傻的问题。我设置self.title后发现导航栏和tabbar都会改变。然后我就开始纳闷。
仔细一想才发现self.title是都会改变的。而self.navigationItem.title只会改变导航栏。self.navigationController.title 设置无效
6.最近在用swift写demo。把它延时处理的方法写出
// 第一种 DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 1.5) { self.categoryCollectionView.endRefreshing(isSuccess: true) } // 第二种 perform(#selector(endRefreshing), with: self, afterDelay: 1.5) @objc func endRefreshing() { self.rankCollectionView.endLoadMore(isNoMoreData: false) }