18 大熊猫侯佩

尚未进行身份认证

Hey,我是大熊猫侯佩 >z 是一只永远练不出6块腹肌的宅猫猪 iOS非自由开发者、汇编逆向爱好者

等级
TA的排名 323

Apple有史以来屏幕最大的手机iPhone 12最新超详细揭秘

0. 楔子其实Apple是一家实打实的硬件公司,而他们的皇牌就是iPhone。虽然每年iPhone都要老生常谈的打怪升级,每年都要有几句吸睛地广告语,但这并不影响各位果友们一年又一年"喜新厌旧"的期待心情。更何况iPhone毕竟也是诸多码农吃饭的老本,不把它摸透何来饭吃呢?所以今年的iPhone12到底会是什么样子?性能能甩11几条街?增加了什么高精尖的功能?对我们开发有什么影响?能不期待吗?So,下面就让大熊猫侯佩带领大家一起来看看吧 ???? 1. iPhone 12概览&n

2020-05-27 09:50:12

最新的iOS14操作系统全面消息重装上阵

引言病毒肆虐的神州早已恢复生机,新冠蹂躏的地球也已逐渐恢复元气!上面这两个好消息,像春风拂面,捎带着一年一度果粉期待已久的日子,伴随着最新的iOS14系统、也伴随着Apple最新的皇牌手机: iPhone12即将到来。相信各位对于iOS13正式版刚发布时的惨剧还记忆犹新,那时是各种吐槽,Apple也是第一时间反常规的连续发布了多个系统更新补丁,才勉强堵住悠悠众口。那么即将发布的iOS14又将会如何呢,它又有什么新鲜、超炫的功能呢?尽管距离苹果公司揭示iOS14还有将近一个月的时间,但有关iOS 1

2020-05-26 15:16:08

iOS系统逆向工程之神探侯佩智破量子矩阵

在任何一部编程悬疑动作片里,每一个超级英雄都有一个颓废的开始…本故事纯属虚构如有雷同洗洗睡吧警告:未经允许禁止转载!!!楔子未知星球。雨还在下,漆黑的乌云压抑的想吐。极度的黑暗中,一枚红点忽明忽暗…一团黑影斜靠着墙壁,使劲的吐着烟圈…墙壁上到处都留存着纳米激光射线刻着的"S w i f t",“S w i f t U I”,“C o m b i n e”,"i O S"等残破烙印,仿佛还在宣告183年前那场世纪大战有多么惨烈…“卧底雨燕党已经211天了,还是没能查出到底他们是怎.

2020-05-21 10:00:21

Mac OS增加文件缓存改善写入性能

这篇准备写个直接明了的…保证没有段子…本文概述了如何使得写入性能提高近5倍的实现。答案很简单: Cache!!!func cryptFile(path: String, with keyData: Data) { guard let h = FileHandle(forReadingAtPath: path) else {return} guard let hw = Fil...

2020-05-02 10:06:48

深度好文: 为毛我能通过@State var修改变量? @State属性修饰器内部肿么工作的?

问题: 为毛改变(遵守View协议的结构中)常规的成员变量会报错?“Cannot assign to property: ‘self’ is immutable” “Cannot use mutatingmember on immutable value: ‘self’ is immutable”以下代码会报如上错误:struct porque: View { @State p...

2020-04-15 17:16:45

SwiftUI: @propertyWrapper结合Combine打造可观察属性

SwiftUI视图刷新机制杂谈笼统的说,属性在被改变时想要触发视图refresh,需要满足下面两种条件之一:该对象是值类型,所有值类型都不能被修改,只能创建修改后的实例。这使得SwiftUI运行时可以捕获到这种新创建的时机,借此刷新视图。该对象是引用类型,遵守ObservableObject协议,由其中的objectWillChange发布器被SwiftUI订阅(隐式),从而在收到对象被修...

2020-04-15 14:34:05

SwiftUI中带格式(Formatter)TextField如何捕获非法输入

导言本文将向大家展示如何利用格式的TextField来过滤用户非法输入,同时解决一个TextField的"怪异"行为。这是本猫第一篇付费博文,相信不会让你失望,如果能够解决到大家的难点、痛点那就更妙了…So废话少说,Let’s Go!!!TextField的格式器有什么用?带格式器的TextField可以过滤用户的非法输入,相当于将以下几个步骤的工作量放到了一起,做了一个封装:取得...

2020-04-08 15:29:19

快点射!(Swift Injection) 不带这样的!

导言注入(Injection)在任何语言里都是非常有效的解耦利器。请不要把上面的注入和注入攻击混淆起来,不要把本猫逼得变身成黑客猫 ????这里就带大家看看如何解决Swift中Injection一个常见的问题:怎么解决泛型协议实体兼容性问题???快速射(Swift Injection), 别想歪如果你没有被上面的那一句拗口的话吓跑,那么恭喜你,坚持看下去你会觉得其实也没想象的那么难…上帝...

2020-03-28 19:09:50

浅析Swift中Combine框架自定义订阅操作符

引子Swift 5.1中苹果终于千呼万唤始出来的祭出Combine框架,带着一层神秘的面纱,它来啦!Combine框架颠覆了以往苹果的开发模式,它用发布者(Publishers),订阅者(Subscribers)以及两者之间重要的纽带:订阅(Subscriptions),诠释了什么是反射式编程。如上图所示,为了更加便捷的完成输入流(Input Stream)到输出流(Output Stre...

2020-03-26 22:35:43

最直白告诉你Swift语言的rethrows关键字到底有什么用?

说实在的,错误处理对于Swift语言来说还算比较简单,如果你对此早已了然于心,请直接略过。如果你搞不清throws和rethrows到底有什么区别,你可以留步稍微了解一下。throws 关键字throws很简单,就是用来告诉编译器我这个方法会抛出错误: enum MyError:Error{ case noName } ...

2020-03-18 09:40:57

SwiftUI: 利用Combine四种方式实时监听用户文本输入

自从Swift 5.1加入了Combine之后,腰不酸了,腿不疼了,各种姿势都能有了…不过对于TextField来说如何实时监听用户输入的文本呢?貌似TextField自身并没有带用户输入改变的回调,这可咋整呢?没关系,聪明的你们应该早已猜到,用Combine库,秒天秒地秒空气…truct NameInputView: View{ @State var name:String...

2020-03-14 09:35:57

如何写一个显示iOS线程编号的小扩展

我们在测试iOS下多线程并发编程时往往需要区分不同的线程。我们知道Thread有一个name实例变量可以用来给线程命名,但是那些系统自动创建的线程你就拿它没办法了吧?其实Thread实例自身是有编号的,不过并没有直接导出。我们用以下语句可以窥探一下:print("\(Thread.current)")显示结果为:“<NSThread: 0x600000ba2b80>{...

2020-03-07 15:30:33

Swift一个小例子带你了解Combine中多重订阅不丢失(auto replay)的方法

引子Combine中虽然有众多内置Operators,但是要想实现对同一个Publisher多次订阅,且结果不丢失还是比较棘手的,除非实现自定义Publisher,但这不是今天我们的话题 ????什么是多重订阅?多重订阅就是多个订阅者订阅同一个Publisher。什么是多重订阅不丢失?不丢失指的是,在有多个订阅者的情况下,无论发生何种情况都可确保每个订阅者都可以接收到每一个消息。即这是一个...

2020-02-20 09:43:33

Xcode中Playground运行代码无响应的极简解决方法

大多数童鞋可能对Xcode中的Playground又爱又恨,我完全可以体会你们的感受…Playground遇到比较多的一种情况就是:执行代码挂起!就是点击那个小三角运行按钮,等到天荒地老却此情可待成追忆的赶脚…这时你把Xcode彻底的完全的关闭,但仍然没有什么卵用…难道抓狂的你只有重启Mac么???答案当然是:NO!一个非常简单的解决办法是:1.打开活动监视器(就是Windows...

2020-01-26 14:40:14

猜猜看:极简例子Swift代码并发耗时不按预期的原因

一段老外写的Swift并发代码,在Playground中运行:let sentence = "Ray’s courses are the best!"let wordOperation = BlockOperation()for word in sentence.split(separator: " ") { wordOperation.addExecutionBlock { ...

2020-01-26 14:14:50

SwiftUI重构功能视图: Never Repeat Yourself!

1.原来视图的架构:我们需要监听一个通知父VC弹出一个子View,其中子View需要接收父VC发出的通知:[父VC]--------弹出-------->[View][View]--------监听-------->[父VC]由于View的特殊性,我们不能直接将监听回调放在View本身,而是要另外写一个类似协调器的东东:class Coordinator { ...

2020-01-10 10:12:38

iOS项目升级到Xcode11后编译运行崩溃的原因及解决

好久没写Blog了,今天来一发一个iOS项目,今天第一次用Xcode11打开,出现了若干错误,逐一修复后,编译运行,App可耻的崩鸟…调试发现崩溃出现在如下一行中:这个在之前的Xcode10中运行是没有问题的,那么可能的原因就是新的Swift运行时在运行检查时更加严格了,在新的Swift runtime中hashValue返回的值超出了Int32可表示的范围。做个测试:显然在之前的...

2019-11-19 14:32:44

Swift初学者容易掉入的两个比较隐蔽的陷阱

本篇本猫向大家演示了初学者用Swift语言编码时容易犯的2个错误,希望可以帮助到大家。

2019-06-01 10:05:44

iOS间接循环引用造成内存泄漏一例

大家对iOS代码中的循环引用导致内存泄漏都很了解,本博试图进一步完善和补充这一主题,谈谈间接循环引用造成泄漏的问题。

2019-05-28 10:32:16

iOS第三方动画标签库内存泄露点的寻觅之旅

本博叙述了在使用第三库的过程中,从发现其中有泄露到定位到泄露,最后解决内存泄露的全过程。适合有一定经验的iOS开发者观赏。

2019-05-04 11:01:16

查看更多

CSDN身份
  • 论坛版主
  • 博客专家
勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 技术圈认证(专家版)
    技术圈认证(专家版)
    博客专家完成年度认证,即可获得
  • 新人勋章
    新人勋章
    用户发布第一条blink获赞超过3个即可获得
  • 阅读者勋章Lv1
    阅读者勋章Lv1
    授予在CSDN APP累计阅读博文达到3天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 原力探索
    原力探索
    参与《原力计划【第二季】——打卡挑战》的文章入选【每日精选】的博主将会获得此勋章。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。
  • 原力新人
    原力新人
    在《原力计划【第二季】》打卡挑战活动中,成功参与本活动并发布一篇原创文章的博主,即可获得此勋章。
  • 红花
    红花
    子板块内专家分月排名榜第一
  • 黄花
    黄花
    子板块内专家分月排名榜第二
  • 蓝花
    蓝花
    子板块内专家分月排名榜第三