前言

最近发现 Mac 上的 iTunes 中的 AppStore 总是无法访问,出现如下三种错误

  • 400 Bad Request
  • 502
  • Your iTunes Store Session has expired (再次登陆还是报这个错)

阅读更多

导语

 

在上一篇中简单分析了 Weak 属性是如何被存储,获取和销毁的,其中的 SideTable 结构体当做黑盒进行处理。本文尝试对 SideTable 的结构进行一些分析。

观察

 

SideTable 主要分为 3 部分

  • weak_table_t: weak 引用的全局 hash
  • RefcountMap : 引用计数的 hash
  • slock: 保证原子操作的自旋锁

阅读更多

前言

 

OC 中的 weak 属性是怎么实现的,为什么在对象释放后会自动变成 nil?本文对这个问题进行了一点探讨。

环境

 

mac OS Sierra 10.12.4
objc709

参考答案

 

搜索后发现runtime 如何实现 weak 属性给出了一个参考答案。

runtime 对注册的类, 会进行布局,对于 weak 对象会放入一个 hash 表中。 用 weak 指向的对象内存地址作为 key,当此对象的引用计数为 0 的时候会 dealloc,假如 weak 指向的对象内存地址是 a ,那么就会以 a 为键, 在这个 weak 表中搜索,找到所有以 a 为键的 weak 对象,从而设置为 nil

阅读更多

导语

 

  系统的 UIButton 默认状态下的样式是图标在左标题在右,但有时候可能需要不同的排版。当然可以通过继承添加子视图来实现需求,但本文打算通过理解 UIButton 自带的 imageEdgeInsetstitleEdgeInsets 属性实现该功能。

主要内容包含以下两点:

  • 浅析 imageEdgeInsetstitleEdgeInsets 的属性的原理 [个人观点]
  • 简单实现图标在右标题在左,图标在上标题在下。

阅读更多

导语

 

本文目的是实现一个网络请求进度条的动画效果,主要结构分为以下三个部分

  • JAProgressWKWebView : 使用 WKWebView 的场景
  • JAProgressUIWebView : 使用 UIWebView 的场景
  • JAProgressView : 一般情况下使用 NSURLSession 的场景

环境

 

macOS Sierra 10.12.4
Xcode 8.3.2
iPhone 6S (10.1.1)
iPad Mini 2 (8.4)

阅读更多

导语

objc 运行时的最新版本为 709 ,一回生,二回熟,简单的记录一下过程。

环境 & 工具

macOS Sierra 10.12.4
Xcode 8.3.2
objc-709
搭建 objc-706 时的头文件

阅读更多

导语

iOS 8 引入了 Touch ID 认证的方式来解决输入密码的麻烦操作,Swift 最低需要 iOS 8*,因此本文会用 *Swift 来实现 Touch ID 功能

环境

macOS Sierra 10.12.4
Xcode 8.3.1
Swift 3.0
iPhone 6S 10.1.1

Touch ID 需要硬件支持

阅读更多

导语

最近,公司的个人开发者账号需要续费,同事发现他的 VISA 信用卡无法支付。提示你的支付授权失败。请核实你的信息后重试,或试试其他付款方式。我在尝试的时候也报了上面的错误,再次尝试就顺利支付了。搜索后发现原来自 2015年6月1日 起,中国大陆发行的 VISA 单标卡若在中国境内他行的 VISA 外卡收单商户交易,VISA 网络将不能受理。

阅读更多

导语

 

  本文主要简单描述了在 OC & Swift 混编工程中,两者是如何相互调用的,顺便实现在 Swift 中获取类的属性。

环境

 

macOS Sierra 10.12.4
Xcode 8.3.1
Swift 3.0

阅读更多

场景

 

  sdk 需要视频素材,我自己找的视频素材太大不能作为素材资源(150K以内)。

操作

 

  记得 FFmpeg 能处理,用 man 查了下,当时写文档的人还真是很讲究。比如下面的图

 

阅读更多

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×