自己写的一些笔记二

这个采用markdown 的形式来写

as as? as! 的区别和用法。网上一些逗逼。写的毛玩意啊 就知道copy 粘贴 和猪 有什么区别 ,猪不能随便变成人, 而他们隔三差五就便成猪, 例子才是最好的老师 真是一群猪

as 用法

        // as 用法 1
        let str:String = "www.shuaige.com"
        //( str as NSString)   这样 str 从String 转变成 NSString 类型 所有才能调用OC的这个方法 .substring(to:  Int)
        // (str as NSString).substring(to: 3)  返回的还是 String 类型
        let subStr = (str as NSString).substring(to: 3)

        // as 用法 2
        // 这个很明显是类型推导 如果赋值的时候字典元素存储的值的类型不一样  需要转换成字典 as [String : Any]  字典的类型就变成了 [String : Any]  类型
        let dict1 = ["name":"tianbin","age":19,"height":1.88] as [String : Any]

as! 用法

// 1.使用数组保存信息    数组的第一个元素很明显是String 类型 但是整个数组是 [Any] 类型
let infoArr:[Any] = ["tianbinbin",27,185]

//  infoArr[0]  通过as! 从任意类型 转换成String 类型
let nameStr = infoArr[0] as! String

// as! 的用法。转成具体类型  
// 注意:如果转换不成功 那么程序会崩溃
// 建议: 如果确定转换成功 在用as! 平时不建议

as?

        // as? as!
        let dict :[String:Any] = ["name":"tianbin","age":18,"height":1.98]
        let name = dict["name"]
        // 通过 as? 转成可选类型
        // as? : 转成的类型是一个可选类型,系统会自动判断name 是否可以转成String?,如果可以转成,那么可以获取字符串 如果不能转成 那么设置为nil
        let tempName = name as? String
        // 第一种写法
        if let tempname = tempName {
            print(tempname)
        }
       // 第二种写法
        if let tempname = dict["name"] as? String {
            print(tempname)
        }

autoresizingMask = UIViewAutoresizingNone 这个用法在swift 3.0 失效了 ???

@escaping. 逃逸 闭包 的用法 先记着 后续我查一下

swift 运行时机制

        今天学习到一个新的东西  比如说当我们需要截取系统的某一个方法的时候 比如 我们pushviewcontroller 的时
候 可以滑动屏幕左侧 一小块区域实现滑动返回,但是如果要让你实现滑动屏幕任意一个地方都能实现返回,并且不是单单是一
个屏幕,整个app 都能实现滑动返回,我以前写我们的项目的时候是在window 上添加了一个手势view 实现的,但是又一个
很大的弊端,手势冲突 比如和scrollview tableview collectionview 以及你自己添加的手势 这样修改起来特别麻烦 
,今天我学习到了一个新的方法 我们可以拿到系统的pop 手势 拿到pop 就代表能拿到view 毕竟pop是添加带view 上的
 然后我们需要拿到 target 和 action。而系统有些方法和属性是没有暴露出来的,这时候我们可以用运行时机制
去查找对应的方法 action 和 target  这里呢  我们可以通过属性的类型查看所有的属性名称(系统有些属性名称没有暴露
给我们,所以我们看不到,这时候可以去遍历)  我最近在写斗鱼直播 因为用的是swift3.0  所以我就直接用swift 介绍
了 oc 的是一样的 如果你回swift 那么 oc 也会用 如果不会 那么请百度一下关键字也能用
  
        //1. 获取系统的pop 手势
        guard let sysetmGes = interactivePopGestureRecognizer else {return}
        
        //2. 获取手势添加到的view中
        guard let gestView = sysetmGes.view else { return }
        
        //3. 获取系统 target action
        //3.1 利用运行时机制 查看所有的属性名称
        // 系统没有把一个属性暴露给我们 而我们又想用它 就是通过截取
        
        
        var count:UInt32 = 0
        // 通过属性类型 遍历所有的属性名称 ivars保存的是所有属性的地址
        let ivars = class_copyIvarList(UIGestureRecognizer.self, &count)
        
        for i in 0..<count{
            let ivar = ivars?[Int(i)]
            //1. 获取属性的名字
            let name = ivar_getName(ivar)
            //2. 将指针转换成字符串
            print(String(cString: name!))
        }

 如果你看到这里对这个很感兴趣,但是还不是很明白 可以参考我的斗鱼直播地址:https://github.com/tianbinbin/DouYuShow  
控制器为CustomViewController 这里有完整的代码 欢迎点赞

1.0 JS 交互

今天有人问我 JS 交互 时间长了有点淡了 所以重新复习一下
    // 1. 原生交互 这个库是apple iOS7 之后推出来的库 实现网页与原生的交互问题
           #import <JavaScriptCore/JavaScriptCore.h>
1.0 初始化webview 对象
- (void)viewDidLoad {
    [super viewDidLoad];
    self.title = @"js and Native";

    // 2. 创建webview 对象
    self.CustomwebView=[[UIWebView alloc]initWithFrame:self.view.bounds];
    self.CustomwebView.delegate=self;
    //添加webview到当前viewcontroller的view上
    [self.view addSubview:self.CustomwebView];
    
    //网址
    NSString *httpStr=@"https://www.baidu.com";
    NSURL *httpUrl=[NSURL URLWithString:httpStr];
    NSURLRequest *httpRequest=[NSURLRequest requestWithURL:httpUrl];
    [self.CustomwebView loadRequest:httpRequest];
}
1.5 webview 有四个代理. 感觉写起来还是比较麻烦 还是参考我的github 我已简单演示了一下。看代码的 会更容易理解 有详细的注释 不会让你失望的github:https://github.com/tianbinbin/JS-OC
2.0 小知识点
    NSString * str1 = @"tianbin";
    NSString * str2 = @"tianbin";
    if(str1 == str2){
        NSLog(@" == 成立  %p ----- %p",str1,str2);
    }
    if([str1 isEqualToString:str2])
    {
        NSLog(@" isEqualToString 成立 ");
    }
这两种情况都成立 值一样 存储的地址一样
输出结果
== 成立  0x1074aa2e8 ----- 0x1074aa2e8

3.0. ApplePay

3.1 ApplePay 相比于支付宝支付和微信支付有什么不同?

目前ApplePay 支持iphone6 以上 ios8(最好ios9)以上。ApplePay 线上线下都能支付 注意:可以支付的时候可以无需联网,这点微信、支付宝是不行的,ApplePay 是基于NFC 环境下的 微信、支付宝是基于二维码 相比于他们ApplePay 更好 更简单

4.0 Apple In purchasing 苹果内购

4.1 链接到 iTunes Connect -> 选择协议、税务和银行业务 具体呢参考网络上的这里我就不写了 参考github:http://www.jianshu.com/p/86ac7d3b593a 然后你需要在 我的App内添加 app 购买的项目 包含 参考名称 类型 产品ID 别忘了在用户和职能里面添加测试账号
AppleInPurchasing.png

具体的Apple In purchasing 的代码 我上传到GitHub:晚上回去上传

http://www.2cto.com/kf/201504/389224.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,711评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,079评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,194评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,089评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,197评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,306评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,338评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,119评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,541评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,846评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,014评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,694评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,322评论 3 318
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,026评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,257评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,863评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,895评论 2 351

推荐阅读更多精彩内容