2006 年,苹果发布了全新的 Objective-C 2.0,我们可以在苹果官网下载最新的 Objective-C Runtime 源码:objc4-750.1.tar.gz 进行阅读和分析。
疑问:Objective-C 2.0 源码为什么被命名为 objc4 ?
本文我们先来介绍一下 Objective-C 1.0 中类与对象的定义,虽然它早已被废弃,而且在 Objective-C 2.0 中已完全重写了,但由于 1.0 的代码阅读起来相对简单清晰,易于理解,仍具一定参考意义。
2006 年,苹果发布了全新的 Objective-C 2.0,我们可以在苹果官网下载最新的 Objective-C Runtime 源码:objc4-750.1.tar.gz 进行阅读和分析。
疑问:Objective-C 2.0 源码为什么被命名为 objc4 ?
本文我们先来介绍一下 Objective-C 1.0 中类与对象的定义,虽然它早已被废弃,而且在 Objective-C 2.0 中已完全重写了,但由于 1.0 的代码阅读起来相对简单清晰,易于理解,仍具一定参考意义。
在一些特定业务场景下,我们需要获取 iOS 设备所连接的 WiFi 的信息,比如 WiFi 的 SSID
(即 WiFi 的名称),WiFi 的 BSSID
(即 WiFi 的路由器的 Mac 地址)等,相应的代码也很简单,大致如下图所示:
距离 Xcode 10.1 正式版发布已经将近一个月了,我们今天重新来回顾一下 Xcode 10.1 的新特性,以及已解决的问题和存在的问题。
本文主要参考了《Xcode 10.1 Release Notes》进行整理,同时你也可以查阅《Xcode 10 Release Notes》获取更多关于 Xcode 10 的细节。
通常,我们的 Xcode 工程会依赖一些第三方库,包括:.a 静态库(Static Library)和 .framework 动态库(Dynamic Library)。
不过简单地把 .framework 后缀的文件称为“动态库”并不严谨,因为在 iOS/macOS 开发中,framework 又分为静态 framework 和 动态 framework,区别如下:
根据最新消息,苹果已经在服务器端解决了这个问题,开发者通过 Xcode 10.1 打的 ipa 包在上传到苹果后台,苹果在处理包的过程中会自动修复。小伙伴们已亲自验证,不会在 iOS 9 上 Crash 啦~
关于 Xcode 10.0 打的线上 Release 包会在 iOS 9.0 ~ 9.2.1 系统上出现随机的崩溃,相信大家已经不陌生了,网上已有不少关于这个问题的讨论。
之前 @高老师很忙
也写了一个小集《解决 Xcode 10 打包 iOS 9.0 - iOS 9.2.1 Crash 的问题》,分析了这个问题产生的原因,以及如何解决这个问题。
Build Settings 顾名思议,用于表示 Xcode 工程的编译配置项。
在开发中,我们经常需要获取设备的型号(如 iPhone X
,iPhone 8 Plus
等)以进行数据统计,或者做不同的适配。但苹果并没有提供相应的系统 API 让我们直接取得当前设备的型号。
其中,UIDevice
有一个属性 model
只是用于获取 iOS 设备的类型,如 iPhone
,iPod touch
,iPad
等;而其另一个属性 name
表示当前设备的名称,由用户在设置》通用》关于》名称中设定,如 My iPhone
,xxx 的 iPhone
等。然而,我们无法根据这两个值获得具体的型号。