OC对象的本质

OC对象的本质
Objective-C的本质 我们平时编写的Objective-C代码,底层实现其实都是C\C++代码 所以Objective-C的面向对象都是基于C\C++的数据结构实现的Objective-C的对象、类主要是基于C\C++的结构体实现的将Objective-C代码转换为C\C++代码 xcrun -sdk iphoneos clang -arch arm64 -rewrite-objc OC源文件 -o输出的cpp文件,(PS: 模拟器(i386)、32bit(armv7)、64bit(arm64)) 一个OC对象在内存中的布局 ...

iOS图片内存优化

iOS图片内存优化
基于现在iOS11新生成的图片都是HEIF,该图片使用UIImage(named: name)已不在那么优雅,图片大小为1.8m大小的,读进手机内存,直接飙升了45M,这是我们不想看到的结果,一个页面有多个这样子的图的话,恐怕就是灾难了。 既然原图不能读入,那么如何可以用更少的内存和CPU来解决呢? 这就要先了解该图片的编码了。 HEIC HEIF 带有元数据的HEIF的另一种形式。HEIC文件包含一个或多个以“高效图像格...

弱符号实现 iOS 组件化解耦

弱符号实现 iOS 组件化解耦
强弱符号简述 函数和全局变量编译后需要有唯一的符号名,在链接时才不会混淆。程序员所写代码中的变量名会经过修饰后作为符号名,比如 C 中fun会被修饰为_fun。而符号分为弱符号与强符号,对于 C/C++ 来说,编译器默认函数和已初始化的全局变量为强符号,未初始化的全局变量为弱符号,可以使用__attribute__ ((weak))定义一个弱符号,编译器决议符号时有如下规则: 不允许强符号被多次定义。多个符...

iOS 多线程面试题(死锁)

iOS 多线程面试题(死锁)
死锁就是队列引起的循环等待 1、一个比较常见的死锁例子:主队列同步 - (void)viewDidLoad { [super viewDidLoad] ; dispatch_sync(dispatch_get_main_queue(), ^{ NSLog(@"deallock"); }); // Do any additional setup after loading the view, typically from a nib. }复制代码 在主线程中运用主队列同步,也就是把任务放到了主线程的队列中。 同步对于任务是...

iOS 后台播放静音文件 延迟APP的存活

iOS 后台播放静音文件 延迟APP的存活
创建 AudioManager.swift import Foundation import AVFoundation import UIKit class AudioManager: NSObject { static let shared = AudioManager() fileprivate let audioSession = AVAudioSession.sharedInstance() fileprivate var backgroundAudioPlayer: AVAudioPlayer? fileprivate var backgroundTimeLength = 0 fileprivate var timer: Timer? // 是否开启后台自...

swift 中的UILabel属性用法及介绍

swift 中的UILabel属性用法及介绍
1.创建 letlabel =UILabel(frame:CGRect(x:30,y:100,width:200,height:40)) view.addSubview(label) 2.设置背景颜色 label.backgroundColor=UIColor.cyan; 3.设置文本字 label.text="xingweixin zhamaotu " 4.设置字体颜色 label.textColor=UIColor.red 5.字体设置 设置字体样式和大小 label.font=UIFont(name:"Zapfino",size:15) 设置字体大小 label.font=UIF...

Swift中的UIImageView的简单介绍

Swift中的UIImageView的简单介绍
1、UIImageView的介绍 UIImageView 是App图层话开发的重要类。你在App中看到的那些绚丽的画面基本都和UIImageView有关系。它就是App图片展示的容器。 2、UIImageView 的属性介绍和方法 1、初始化 /** UIImageView 的初始化 */ var NetWorkImageView = UIImageView.init() NetWorkImageView = UIImageView.init(frame: self.view.frame) NetWorkImageView = UIImageView.init(image: UIImage...

使用 SwiftUI 变成一个简单的app

使用 SwiftUI 变成一个简单的app
在 WWDC 大会开始一个星期以来,大家纷纷为今年的 SwiftUI 、昏暗模式、可更新的 CoreML 模型兴奋不已。在接下来的一周,我将会逐一介绍这些新玩意。首先从 SwiftUI 开始吧。SwiftUI 是苹果大家族中用来构造 APP 的全新方法。 SwiftUI 是一个声明式的基于组件的框架。你需要完全忘记曾经的 MVC 概念——在这种模型中,每个视图和模型之间都必须有一个控制器。在 SwiftUI 中只有状态的概念,同时视图继承...

SwiftUI 简单的使用教程

SwiftUI 简单的使用教程
SwiftUI 简介 SwiftUI 是一种为任何 Apple 平台声明用户界面的现代化方式。以前所未有的速度,创建漂亮、动态的应用程序。 只需要描述一次的布局 为你的视图声明任何状态的内容和布局,一旦状态发生改变, SwiftUI 会自动更新视图的渲染。 List(landmarks) { landmark in HStack { Image(landmark.thumbnail) Text(landmark.name) Spacer() if landma...
Copyright © ios教程,苹果粉丝,苹果资讯,ios入门教程,ios学习,ios程序员,ios视频教程,ios粉丝网 保留所有权利.   Theme  Ality

用户登录