图片中的A 跟 B 很明显的是相同的程式,只是代不同的变量
但是因为有卡到 UIWebBiewDelegate 的关系,小妹我没有办法把 它写成class 因为没有物件,所以activeIndicator.startAnimating(), 会失效 或是webViewDidStarload 之类的东西会失效效
请问各位大大这个如何解
20151224 (今天我生日,窃笑)
具体的说
A 部份 跟 B 部份的 程式几乎是相同的
只是带入不同的参数。
可是如果要写成一个func 或 class 就会因为 物件没有带入 而造成程序无法正确执行
举例:
如果我写成
class XXX{
func AA(webView:UIWebView!, Act:UIActivityIndicatorView, URL:NSString){
我的程序
}
func webViewDidStartLOAD(webView:UIWebView){
player()
}
func webViewFinishLoad(webView:UIWebView){
stop()
}
func play(){
XXXXX
}
func stop(){
XXXX
}
}
以上是我之前写的,但遇到的问题
一,我不知道 这个class 要怎么被载入 例如 php 有 $X=new XXX()
二、上次程序最大的错就是因为 在 ViewController 前有带了一个 UIWebViewDelgate 而我写的class 并没有带 webViewdellgate , 所以会造成 webViewDidStartLoad 跟 webViewDidFinishLoad 这两个fuch 无法正常的被触发
20151225
首先感谢各位大大的祝福,虽然昨天沈溺在code里面,但有很多好朋友跟大家给我祝福,很开心(我男朋友居然只有请我吃大餐~ 气~ (离题了))
继承的观念,当初在学校的时候就不有搞得很懂,后来写程式的时候最多用到 class 从来没用过 extension 不知道这样写对不对 (真是后悔当初在学校只顾著约会...哭哭)
extension UIWebView: UIWebViewDelegate {
(这里我不知道要怎么写 ...(翻桌))
}
class tmpWebView:UIWebView{
var act:UIActivityIndicatorView
var URL:NSString
var bounce:Bool
var color:UIColor
var WebView:UIWebView
init( act:UIActivityIndicatorView,WebView:UIWebView, URL:NSString,bounce:Bool,color:UIcolor){
self.act = act
self.delgate=WebView
}
func gourl(){
act.color = UIcolor.purplecolr()
WebView.scrollView.bounces =false
WebView.delegate=self
globalWebView.loadRequest(request)
}
func webViewDidStarLoad(webView:WebView){
salf.play()
}
func webVeiwDidFinishLoad(webView:WebView){
salf.stop()
}
func play(){
act.startAnimation()
}
func stop() {
act.stopAnimation()
}
}
我一直觉得,这样的逻辑好像不对 init, 这个东西是定义某些动作某些变量 这里的写法好像不对
extension 应该是 把UIWebView 跟 UIWebViewDelegate 定义在一起
但因为我不是很懂 继承的原理,所以不懂里面要写什么,在php 中 extension 是 继承class ,但在swift 里我爬了一下文,怎么感觉好像 class 反而去继承 UIWebView ...
先把你的问题描述捋顺了,我完全看不明白你的具体问题是什么。
更新:
我大概明白你的意思了,你就是想把相同的代码提出来。
那么我给你的建议是:
你可以写一个 webView 继承与 UIWebView,并在内部实现初始化构建,delegate 方法和 play() 等。
extension UIWebView: UIWebViewDelegate {}
也可以,但是需要注意,Swift 现在并不支持扩展储值属性。并且这样的扩展会影响到所有的 UIWebView,当然,如果你需要影响所有的话。非常重要的提示:不要没事儿就用
var
声明,要把习惯改为使用let
声明。