
iOS
文章平均质量分 65
iOS 基础知识以及面试题讲解
杜甲同学
QQ:2685312867
展开
-
iOS 沙盒加载HTML script 不能读取解决方案
iOS 沙盒加载 HTML 读取js原创 2022-08-11 19:21:49 · 425 阅读 · 1 评论 -
iOS异步绘制
#import <QuartzCore/QuartzCore.h>NS_ASSUME_NONNULL_BEGIN@interface CBAsyncDrawViewLayer : CALayer@property (nonatomic, assign, readonly) NSInteger drawsCount; // 绘制次数避免重复绘制使用- (void)increaseDrawCount;@endNS_ASSUME_NONNULL_END#import "CBA原创 2021-11-07 12:47:02 · 472 阅读 · 0 评论 -
iOS 14 IDFA获取
if (@available(iOS 14, *)) { [ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) { if (status == ATTrackingManagerAuthorizationStatusAuthorized) { NSString原创 2021-11-05 16:23:39 · 512 阅读 · 0 评论 -
Xcode 没有提示
退出 Xcode重启电脑找到 这个 DerivedData 文件夹 删除 (路径: ~/Library/Developer/Xcode/DerivedData)删除这个 com.apple.dt.Xcode 文件 (路径: ~/Library/Caches/com.apple.dt.Xcode)运行 Xcode 看看效果,应该就好了.原创 2021-10-31 17:56:21 · 1897 阅读 · 0 评论 -
Metrics 和 Diagnostics 提高性能
搜索性能指标的工具XCTest Metrics衡量性能的 measure blockMetricKit搜集电池和性能指标和诊断的框架Xcode Metrics Organizer在Xcode 中电池、性能和I/O的聚合指标能耗和性能API通过 APP Store Connect API 程序化获取指标和诊断信息开发阶段#mermaid-svg-oA6wvtQ6qWyVOyXD .label{font-family:'trebuchet ms', verdana, a原创 2021-04-16 22:16:58 · 401 阅读 · 0 评论 -
iOS 性能优化 相关面试题 卡顿产生的原因(2)
有时我们的app在使用起来会感觉不是很流畅,那么卡顿产生的原因是什么呢?这里就涉及两部分的操作CPUGPU在CPU和GPU共同努力下将数据加工好,等待下一帧Vsync信号的到来,就将内容显示在屏幕中,也就是说CPU、GPU使用的时间如果在16ms以内,就不会产生卡顿,如果超过了就会产生卡顿,因为其会显示上一帧的数据, 超时产生的数据会在下一帧Vsync信号到来的时候进行显示。卡顿解决的主要思路尽可能减少CPU、GPU资源消耗60FPS 刷新频率,CPU、GPU加工数据在 16.7ms 以内就原创 2021-04-10 17:39:47 · 282 阅读 · 0 评论 -
iOS 性能优化 相关面试题 CPU&GPU (1)
面试题你在项目中是怎么优化内存的有遇到过tableview卡顿情况吗? 会造成卡顿的原因大致有哪些?列表卡顿的原因可能有哪些?你平时是怎么优化的?优化从哪些方面着手我们先来了解一下CPU 和GPU在屏幕成像的过程中,CPU和GPU起着至关重要的作用CPU主要负责 对象的创建和销毁、对象属性的调整、布局计算、文本的计算和排版、图片的格式转换和解码、图像的绘制(Core Graphics)GPU 负责 纹理的渲染 纹理就是显示屏幕上的数据格式我们要把数据显示在屏幕上是需要CPU和GPU一起原创 2021-04-10 13:41:52 · 293 阅读 · 0 评论 -
Appium WebDriverAgent xcode12 编译
Falling back to building from the source*** Building scheme "RoutingHTTPServer" in RoutingHTTPServer.xcodeproj*** Building scheme "RoutingHTTPServer iOS" in RoutingHTTPServer.xcodeprojBuild Failed Task failed with exit code 1:This usually indic...原创 2021-01-15 10:34:58 · 576 阅读 · 0 评论 -
iOS Runtime基础知识2
iOS Runtime基础知识2method_t函数四要素名称返回值参数函数体name 名称const char*types;函数的返回值以及参数的组合 对应返回值和参数IMP imp 无类型的函数指针 对应的就是函数体method_tSEL nameconst char*typesIMP impmethod_t 这个结构体就是对函数4要素的封装和抽象Type Encodingsconst char* types;不可变的字符指针返回值第1位,参数可能有多个返回值只有一个原创 2020-05-26 17:12:19 · 410 阅读 · 0 评论 -
iOS - Runtime 基础知识1
Runtime 基础知识数据结构类对象与元类对象消息传递机制方法缓存消息转发Method-Swizzling动态添加方法动态方法解析基础数据结构objc_objectobjc_classisa指针method_tobjc_object我们在OC中使用的所有的对象都是id类型的。id类型的对象对应到runtime当中就是 id == objc_object,就是objc_object 这样的一个结构体objc_object 数据结构isa_t 共用体 。关于i原创 2020-05-26 14:49:00 · 357 阅读 · 0 评论 -
iOS基础面试题
1,用objective-c写一个插入法排序。 2.写一个NSString类的实现 + (id)initWithCString:(constchar *)nullTerminatedCString encoding:(NSStringEncoding)encoding; + (id)initWithCString:(constchar *)nullTerminated原创 2013-07-10 20:52:27 · 1931 阅读 · 0 评论 -
iPhone/iPad 屏幕旋屏 iphone / ipod deployment info 调整
一般新建一个ViewController都会默认有以下这个函数- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation;下面我们来定义各种旋转- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrien原创 2013-06-28 13:56:47 · 2047 阅读 · 0 评论 -
iOS用Socket编写客户端
/* Socket 基础知识1、 INADDR_ANY就是指定地址为0.0.0.0的地址,这个地址事实上表示不确定地址,或“所有地址”、“任意地址”。 一般来说,在各个系统中均定义成为0值。2、 INADDR_ANY指的是所有ip,即连接本机任何一个ip地址都可以连接上3、 sin_family指代协议族,在socket编程中只能是AF_INET4、原创 2013-06-28 13:57:14 · 912 阅读 · 0 评论 -
iOS中截取当前屏幕,并保存图片的代码例子
UIGraphicsBeginImageContext(self.view.bounds.size); //currentView 当前的view 创建一个基于位图的图形上下文并指定大小为 [self.view.layer renderInContext:UIGraphicsGetCurrentContext()];//renderInContext呈现接受者及其子范围到指定的上下文原创 2013-06-28 13:57:36 · 1355 阅读 · 0 评论 -
多线程,进程与线程的解释
计算机的核心是CPU,它承担了所有的计算任务。它就像一座工厂,时刻在运行。假定工厂的电力有限,一次只能供给一个车间使用。也就是说,一个车间开工的时候,其他车间都必须停工。AD:2013大数据全球技术峰会课程PPT下载进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。最近,我读到一篇材料,发现有一个很好的类比,可以把它们解释地清晰易懂。1.650) th原创 2013-06-28 13:56:43 · 1298 阅读 · 2 评论 -
iOS中的block和retain cycle (经典)
retain cycle 的产生说到retain cycle,首先要提一下Objective-C的内存管理机制。作为C语言的超集,Objective-C延续了C语言中手动管理内存的方式,但是区别于C++的极其非人道的内存管理,Objective-C提出了一些机制来减少内存管理的难度。 比如:内存计数。在Objective-C中,凡是继承自NSObject的类都提供了两种方法,retain和rele转载 2013-06-28 13:57:59 · 872 阅读 · 0 评论 -
Json数据解析后分类思路
Json数据解析后分类思路代码下载地址: "大字典 2.zip" http://vdisk.weibo.com/s/HzjOj我们这里已从新浪微博中请求回来的数据作为例子。为了让工程简化,我将数据写入到本地了。这里主要是为了学习如何将Json数据解析分类。新浪微博请求返回来的数据大致格式如下:{原创 2013-06-28 13:58:11 · 1976 阅读 · 0 评论 -
iOS读取制作二维码
iOS读取制作二维码代码例子下载地址 "读取制作二维码.zip" http://vdisk.weibo.com/s/Gbaa1工程中需要的第三方库在代码例子中有的我们来看看.h文件:#import #import "ZBarSDK.h"@interface ViewController : UIViewCo原创 2013-06-28 13:58:07 · 1599 阅读 · 0 评论 -
iOS下用Socket编写服务器
为了做一个通信的小例子。/* Socket 基础知识1、 INADDR_ANY就是指定地址为0.0.0.0的地址,这个地址事实上表示不确定地址,或“所有地址”、“任意地址”。 一般来说,在各个系统中均定义成为0值。2、 INADDR_ANY指的是所有ip,即连接本机任何一个ip地址都可以连接上3、 sin_family指代协议族,在socket编程中只原创 2013-06-28 13:57:12 · 2056 阅读 · 0 评论 -
新浪微博Oauth认证
实现新浪微博Oauth认证ViewController.h代码实现如下:@interface ViewController : UIViewController@property (strong, nonatomic) UIWebView *OauthWebView;@endViewController.m文件实现如下:- (void)viewDidLoad{原创 2013-06-28 13:57:16 · 1597 阅读 · 0 评论 -
iOS之第三方FMDB框架操作数据库
FMDB下载地址:https://github.com/ccgus/fmdbFMDB的源码添加完毕后,然后删除fmdb.m 这是作者提供工程的入口类,有兴趣的朋友可以自行研究,我们只学习如何使用这个框架。 目前程序是无法编译通过的,因为缺少类库文件,如下图所示,请将libsqlite3.0dylib添加至工程。原创 2013-06-28 13:56:45 · 1166 阅读 · 0 评论 -
iOS解决TextField被键盘遮住的问题
首先,我们在ViewController.h中@interface ViewController :UIViewControllerUITextFieldDelegate>@property (strong, nonatomic) UIScrollView* scrollView;@property (strong, nonatomic) UITextField原创 2013-06-28 13:56:53 · 1153 阅读 · 0 评论 -
PPRevealSideViewController第三库的简单例子
PPRevealSideViewController第三库的简单例子代码下载: "PP.zip"http://vdisk.weibo.com/s/HAdg2http://pan.baidu.com/share/link?shareid=3833108176&uk=3189484501这个第三方库是能够实现左右滑动视图控原创 2013-06-28 13:58:15 · 1214 阅读 · 0 评论 -
iOS 抽奖程序 可指定版
iOS 抽奖程序 可指定版上一篇,我们学习如何写抽奖程序,这篇将学习如何写一个可指定版。代码下载地址http://pan.baidu.com/share/link?shareid=987661795&uk=3189484501Model.h#import @interface Model : NSObject//正常的原创 2013-06-28 20:49:32 · 2064 阅读 · 0 评论 -
iOS 数据压缩与解压
iOS 数据压缩与解压Hi,推荐文件给你 "数据压缩与解压.zip"http://vdisk.weibo.com/s/Gbabphttp://pan.baidu.com/share/link?shareid=1658642783&uk=3189484501本文中需要的第三库在本文的代码例子中可以下载。minizip和ZipArchive原创 2013-06-28 13:58:13 · 1982 阅读 · 0 评论 -
图标下载
图标下载VistaIcons.com World - Free Vista Style Icons, Vista Wallpapers, Free Icon Sets and Windows Vista Desktop Icons网站地址:http://www.vistaicons.com/ 网站预览图:预览Fast Icon - Free stock icon原创 2013-06-30 20:00:13 · 1412 阅读 · 0 评论 -
iOS 指南针的制作 附带源码
iOS 指南针的制作 附带源码代码下载地址: http://pan.baidu.com/share/link?shareid=3088506835&uk=3189484501指南针的制作非常简单。直接看代码吧!需要添加框架ViewController.h代码如下:#import #import原创 2013-06-28 20:14:30 · 3035 阅读 · 0 评论 -
iOS 基础教程第一章
目标 IOS 平台简介 开发者计划 IOS 开发基础知识 完成一个 Hello World 1、IOS 平台简介 历史 (1)从Mac OS演化而来 (2)以Darwin为基础 系统层次(1)核心操作系统层(2)核心服务层(3)媒体层(4)Cocoa界面服务层原创 2013-07-02 06:19:14 · 1615 阅读 · 0 评论 -
iOS 第九章 iFlag 项目
目标掌握 CoreAnimation 常用工具类了解 iPhone 产品设计流程掌握产品设计原型软件 1、掌握 Core Animation 常用工具类Core Animation 于 UIKit动画之间一个关键区别在于 Core Animation 有多个专门的类处理动画。一个动画类,定义了特定动画的独特属性,使用这些类,可以将整个图层作为动画或进行切换,也可以只对图层d原创 2013-07-03 06:39:42 · 1204 阅读 · 0 评论 -
去掉jOSN中的转义符
json返回全都是带'\'的,于是要去掉这个反斜杠,但是OC里面的'\'是转义符,不能直接用@"\"之类的表示,一顿搜索之后,找到了OC对转义字符的表示方法,如下:\a - Sound alert\b - 退格\f - Form feed\n - 换行\r - 回车\t - 水平制表符\v - 垂直制表符\\ - 反斜杠\" - 双引号\原创 2013-07-03 20:47:13 · 2951 阅读 · 0 评论 -
iOS 音频格式WAV和AMR格式转换技术
代码例子:Hi,推荐文件给你 "AudioConversion.zip" http://vdisk.weibo.com/s/IqeKg代码实现如下: 需要VoiceConvert的第三方库,代码例子中都是有的。- (void)viewDidLoad{ [superviewDidLoad];// Do any additional setup after lo原创 2013-07-03 21:01:48 · 3793 阅读 · 0 评论 -
iOS 复习题
1、iPhone5的屏幕分辨率大小为 1136* 640 ? 屏幕分辨率:用于量度位图图像内数据量多少的一个参数。通常表示成ppi(每英寸像素Pixel per inch)。屏幕物理尺寸不变,分辨率越高,每单位面积内包含的细节(像素点)越多。 2、structstrA { int a; float b; char c; } expA;原创 2013-07-29 15:33:52 · 1173 阅读 · 0 评论 -
iOS UIScrollView的简单使用
本文代码下载http://vdisk.weibo.com/s/BDn59yfnBVMAJ //// ViewController.m// ScrollView_T1119//// Created by 杜 甲 on 13-4-8.// Copyright (c) 2013年 杜 甲. All rights reserved.//#import "ViewCon原创 2013-07-26 13:49:11 · 1589 阅读 · 0 评论 -
MindNode.app 思维导图 下载是Pro版哦
MindNode.app 下载是Pro版哦 http://vdisk.weibo.com/s/BDn59yfnBVUKF原创 2013-08-01 10:10:04 · 1864 阅读 · 0 评论 -
iOS下 FMDB 简单的代码例子
iOS下 FMDB 简单的代码例子首先,导入libsqlite3.0.dylib库 我们,来看一下.h文件#import @interface ViewController : UIViewController@property (assign,nonatomic)sqlite3* database;-(IBAction)openDB;-(IBAction原创 2013-06-28 13:57:56 · 1023 阅读 · 0 评论 -
iOS 复习题(二)
1.#import和#include的区别 @class?@class一般用于头文件中需要声明该类的某个实例变量的时候用到,在m文 件中还是需要使用#import而#import比起#include的好处就是不会引起交叉编译 2. readwrite,readonly,assign,retain,copy,nonatomic 属性的作用@property是 一个属性访问声明,扩原创 2013-07-29 15:35:23 · 2081 阅读 · 1 评论 -
iOS一些代码小例子
Hi,推荐文件给你 "谓词的用法PredicateABC.zip" http://vdisk.weibo.com/s/GbacFHi,推荐文件给你 "数据压缩与解压.zip" http://vdisk.weibo.com/s/GbabpHi,推荐文件给你 "读取制作二维码.zip" http://vdisk.weibo.com/s/Gbaa1Hi,推荐文件给你原创 2013-06-28 13:56:57 · 967 阅读 · 0 评论 -
iOS抽奖程序
iOS抽奖程序代码下载地址: http://vdisk.weibo.com/s/HKehUhttp://pan.baidu.com/share/link?shareid=893330225&uk=3189484501我们要先写一个数据模型:Model.h#import @interface Model : NSOb原创 2013-06-28 20:35:05 · 1547 阅读 · 0 评论 -
shareSDK(分享第三方库)的 使用
首先,下载第三方库,可以去官网下载,官网的地址我忘记了,但下面有一个我之前下的和我写的例子,其实官方的例子也写我们只是告诉大家用时需要把哪些代码复制出来就可以用了。原创 2013-08-27 08:16:06 · 4867 阅读 · 3 评论 -
iOS 圆形旋转托盘
代码下载:http://pan.baidu.com/s/1sZb3g效果图:DJItemBtn.h//// DJItemBtn.h// DjRotateMenuForiOS//// Created by 杜甲 on 13-9-25.// Copyright (c) 2013年 杜甲. All rights reserved.//#impo原创 2013-09-30 11:38:39 · 1843 阅读 · 0 评论