Objective-C
chqj_163
这个作者很懒,什么都没留下…
展开
-
线程问题:This application is modifying the autolayout engine from a background thread after the engine w
线程问题:This application is modifying the autolayout engine from a background thread after the engine was accessed from the main thread. This can lead to engine corruption and weird crashes.(大致意思是...转载 2019-11-19 17:30:11 · 1975 阅读 · 0 评论 -
IOS Xcode开发中 文件名的后缀名m,mm,cpp,h区别
文件区别:.h:头文件。头文件包含类,类型,函数和常数的声明。.m :源代码文件。这是典型的源代码文件扩展名,可以包含Objective-C和C代码。.mm :源代码文件。带有这种扩展名的源代码文件,除了可以包含Objective-C和C代码以外还可以包含C++代码。仅在你的Objective-C代码中确实需要使用C++类或者特性的时候才用这种扩展名.cpp:只能编译C++当你...转载 2019-10-25 20:07:16 · 542 阅读 · 0 评论 -
This may reduce the quality of type information available.
warning: could not execute support code to read Objective-C class data in the process. This may reduce the quality of type information available.方法自己调用了自己:set_Method:(NSString *)text{ [self ...转载 2019-06-24 19:48:39 · 857 阅读 · 0 评论 -
typeof 编译错误
__weak typeof(self) wSelf = self报错:- A parameter list without types is only allowed in a function definition. A corresponding warning tells me that __weak only applies to Objective-C object or block ...转载 2019-07-19 21:25:40 · 2264 阅读 · 0 评论 -
解决Cannot use '@try' with Objective-C exceptions disabled报错
Xcode打包提示:Cannot use '@try' with Objective-C exceptions disabled解决方法:修改target -> build settings -> All | Combined -> Apple LLVM Compiler 4.2 - Language 中 Enable Objective-C Exceptions为Y...转载 2019-07-19 21:26:29 · 3007 阅读 · 0 评论 -
iOS安全防护之ptrace反调试和汇编调用系统方法
一 lldb调试原理:debugserverxcode的lldb之所以能调试app,是因为手机运行app,lldb会把调试指令发给手机的debugServer; debugServer是由Xcode第一次运行程序给安装到手机上。 Xcode上查看debugserver: 按住command键点击Xcode,找到xcode.app显示包内容/Applications/Xcode.app/Co...转载 2019-07-29 17:58:23 · 815 阅读 · 0 评论 -
Xcode - 在 Xcode 里添加和使用 Debug 宏定义
转载https://blog.csdn.net/u011342466/article/details/79672161?tdsourcetag=s_pctim_aiomsg源链接:https://viktyz.gitbooks.io/iosnotebook-gitbook/Notes/Note_00176_20160426.html方案名称Xcode - 在 Xcode 里添加和使用 ...转载 2019-08-01 16:05:09 · 543 阅读 · 0 评论 -
NSlog警告—— 编译器打印NSInteger类型
NSInter是apple推荐用的整形数据类型,在mac64位环境下用打印NSInteger的时候如果用%d,编译器会报警告:对于32位代码,需要的%d说明符。但是,如果%d说明,得到的64位提示警告用%ld代替:而如果%ld相匹配的64位大小,32位代码中,会得到一个警告提示%d代替:如何解决呢?NSInteger的定义是这样的 :#if __L...转载 2019-08-01 16:06:58 · 1389 阅读 · 0 评论 -
iOS12 获取wifi信息
前言:更新了iOS12系统后,发现获取不到已连接wifi的ssid信息,12系统以前手机可以获取,搜集了一翻资料得到答案1、在Capabilities中,激活Access WiFi Infomation项屏幕快照 2018-10-11 下午5.47.15.png2、去开发者账号appid打开Access WiFi Infomation权限获取代码屏幕快照 2...转载 2019-08-01 16:09:51 · 646 阅读 · 0 评论 -
oc代码中字符串过长,换行处理
格式1: 用'\'作为换行声明NSString *text = @"abcd \ efgh";格式2: 用' " '作换行声明,从第二行起的字符串都用半角双引号包裹NSString *text2 = @"ABCDEFG" "ASDFGHJKL";格式3: 将1和2结合使用 NSString *text3 =...转载 2019-08-05 19:44:35 · 2616 阅读 · 0 评论 -
XCode8屏蔽系统log 真机调试NSLog没输出
屏蔽的方法如下:Xcode8里边 Edit Scheme-> Run -> Arguments, 在Environment Variables里边添加OS_ACTIVITY_MODE = Disable 解决真机调试NSLog没输出iOS 10真机调试的话,会屏蔽掉NSLog。如果NSLog宏定义是这样的话:#define NSLog(format, ...) ...转载 2019-08-12 16:50:47 · 470 阅读 · 0 评论 -
关于OC中的几种延迟执行方式
第一种:[UIView animateWithDuration:3 delay:3 options:1 animations:^{ self.btn.transform = CGAffineTransformMakeTranslation(300, 400); } completion:^(BOOL finished) { NSLog(@"view a...转载 2019-09-02 21:25:17 · 284 阅读 · 0 评论 -
iOS如何快速定位崩溃代码
当我们开发的时候会经常遇到程序崩溃的现象,有的时候程序是崩溃到具体的一行代码里面,我们可以很方便的进行调试,但更多的时候,程序是崩溃在App入口处,如下图:我们在控制台里虽然可以一眼就看出崩溃的原因是因为,一个字典类型调用了字符串方法,所以引起崩溃。但是isEqualToString方法相信在每个人的项目里都是很常见的,这些信息并不能帮助你快速找到崩溃的所在地方。下面将给...转载 2019-10-11 10:53:51 · 527 阅读 · 0 评论 -
oc开发过程中常见崩溃原因
1,KVO+通知等 --监听类必须在dealloc方法中注销监听,否则极其容易崩溃- (void)dealloc { [self.currentTask removeObserver:self forKeyPath:@"status" context:nil];//KVO崩溃,添加监听者必须记得取消监听 否则就崩给你看 [self removeObserverBlocks...转载 2019-10-11 10:56:49 · 2334 阅读 · 1 评论 -
Associated Objects
#import <objc/runtime.h>Objective-C开发者应该小心谨慎地遵循这个危险咒语的各种准则。一个很好的原因的就是:混乱的运行时代码会改变运行在其架构之上的所有代码。从利的角度来讲, <objc/runtime.h> 中的函数具有其他方式做不到的、能为应用和框架提供强大功能的能力。而从弊的角度来讲,它可能会会毁掉代码的sanity met...转载 2019-06-06 17:29:47 · 207 阅读 · 0 评论 -
ios runtime浅析(三):Method Swizzling
看到nshipster 的Method Swizzling这篇不错的文章还没翻译,就补充一下,没有逐字翻译,关于associated objects已经有翻译了,大家也可以去了解一下。 method swizzling也许是runtime中最有争议的技术,它的作用就是改变已经存在selector的实现,之所以可以这样是因为方法调用可以在运行时改变:通过改变类的分发表( dispatch tab...转载 2019-06-06 17:25:40 · 195 阅读 · 0 评论 -
浅谈Xcode的Other linker flags
今天项目中要嵌入别人的SDK,但他们又没有提供使用文档,这可苦了我,出现了这样的错误。C2C7F4BE-BD55-4783-A87F-F433654BABA6.png花费了我好长时间才想起来哪里出的错误,最后我添加了配置就OK了。IIHPIUDM7Z}98I()`7T4J%J.jpg那么就介绍一下这些参数吧。Targets选项下有Other linke...转载 2019-06-12 21:02:57 · 264 阅读 · 0 评论 -
定制 UnityAppController
转载https://blog.csdn.net/huanguuuu1234567/article/details/78027207 开发 Unity3d 手机游戏的时候,不免要和第三方 SDK 打交道。于是总是需要实现自己的 AppController 来维护 SDK 的生命周期。Unity3d 提供了一套插件机制,可以很方便地在项目中使用自己的 CustomAppController...转载 2018-10-25 17:34:57 · 487 阅读 · 0 评论 -
iOS开发------使用Xcode编译器定位抛出异常的位置
版权声明:本文为博主原创文章,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。 https://blog.csdn.net/RunIntoLove/article/details/51297734虽然Objective-C对异常进行了封装,但日常敲代码的时候,往往会因为马虎,代码段出现了一点小小的错误,自己却发现不了。当然,很多时候,Xcode就会直接报错(也就是俗...转载 2018-10-23 11:42:33 · 279 阅读 · 0 评论 -
IL2CPP 深入讲解:方法调用介绍
IL2CPP深入讲解:方法调用介绍IL2CPP INTERNALS: METHOD CALLS作者:JOSH PETERSON翻译:Bowie这里是本系列的第四篇博文。在这篇文章里,我们将看到il2cpp.exe如何为托管代码中的各种函数调用生成C++代码。我们在这里会着重的分析6种不同类型的函数调用:类实例的成员函数调用和类的静态函数调用。编译期生成的代理函...转载 2018-10-29 21:07:38 · 2391 阅读 · 0 评论 -
typedef
转载https://www.cnblogs.com/ktao/p/8578074.html最近面试被问到typedef和define的一些问题,由于很久没用都忘记了,因此在此做一个详细的介绍。1. 四个用途用途一:定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如:char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变...转载 2018-11-02 19:42:20 · 119 阅读 · 0 评论 -
objective-c 中随机数的用法 (3种:arc4random() 、random()、CCRANDOM_0_1() )
转载https://www.cnblogs.com/careerman/archive/2012/09/17/2689243.html1、随机数的使用 1)、arc4random() 比较精确不需要生成随即种子 使用方法 : 通过arc4random() 获取0到x-1之间的整数的代码如下: i...转载 2018-11-30 20:10:46 · 183 阅读 · 0 评论 -
iOS小记--nw_protocol_boringssl_error(1584)
转载https://www.jianshu.com/p/0cc0cfcb858d018-10-18 11:02:14.647218+0800 AutumnTest[1917:573781] [BoringSSL] nw_protocol_boringssl_error(1584) [C4.1:2][0x103b0c3a0] Lower protocol stack error: 54201...转载 2018-12-03 20:52:27 · 2232 阅读 · 0 评论 -
nw_protocol_boringssl_error(1584)
http://www.cnblogs.com/ZK1316/p/9857640.htmlRN是个奇怪的东西,是Facebook于2015年4月开源的跨平台移动应用开发框架,是Facebook早先开源的JS框架 React 在原生移动应用平台的衍生产物,目前支持iOS和安卓两大平台。但自开发以来一直是诟病不断,虽然一直在升级修复问题,问题还是五花八门。本人苦逼的iOS程序猿一枚,在RN中不断趟坑...转载 2018-12-03 21:11:22 · 902 阅读 · 0 评论 -
iOS 配置https
貌似在iOS9之后,官方默认只能访问https。如果访问的https都是安全的,则不需要做任何配置。 安全的https都是通过官方认可的机构购买的SSL证书,如果是自己配置的证书则需要做一下配置了。1、SSL证书向后台开发者获取SSL证书(crt格式),并将该文件的格式转换成cer格式:方式一:个人试过,报错了$ cd /Users/thbdsz/Desktop/...转载 2018-12-03 21:22:54 · 467 阅读 · 0 评论 -
IOS中对Url进行编码和解码
//ARC模式下//加密+ (NSString *)encodeToPercentEscapeString: (NSString *) input{NSString *outputStr =(__bridge NSString *)CFURLCreateStringByAddingPercentEscapes(NULL, /* allocator */(__bridge...转载 2018-12-11 15:05:03 · 541 阅读 · 0 评论 -
Xcode中PCH文件的使用
在iOS中pch文中件可以用来存放一些公用的宏,存放一些公用的头文件,和自定义Log(输出日志)等,一般常用在定义设备屏幕的宽度、高度、版本号等等。在Xcode5及以前Xcode会自动帮我们创建.pch文件,考虑到编译时的速度自Xcode6以后开始不再自动创建.pch文件了,这时如果我们需要的话,就要自己手动创建pch.gif创建完成后,接下来要配置PCH文件配置PCH.gi...转载 2018-12-24 20:44:35 · 348 阅读 · 0 评论 -
IOS:OC-JSON数据解析
1.先建立一个message.txt文档,内容如下:[ {"sender":"小花","receiver":"小新","content":"向日葵的微笑永远只为太阳而笑","data":"2017年6月1日",},{"sender":"小花","receiver":"小新","content":"万丈高楼平地起","data":"2017年6月2日",}...转载 2019-05-10 10:33:17 · 478 阅读 · 0 评论 -
iOS动态库、静态库及使用场景、方式
前面介绍过制作过程,这里不讲如何制作动态库、静态库。静态库和动态库都是以二进制提供代码复用的代码库。静态库常见的是 .a 动态库(共享库)常见的是 Windows 下的 .dll,Linux 下的 .so,Mac 下的 .dylib/.tbd。特别注意平时我们经常说的Framework(in Apple) 是Cocoa/Cocoa Touch程序中使用的一种资源打包方式,可以将代码...转载 2019-05-15 21:10:17 · 472 阅读 · 0 评论 -
oc- iOS开发:Debug与Release版本NSLog屏蔽方法
1.在***-Prefix.pch里面添加[objc]view plaincopy#ifdefDEBUG#defineDLog(...)NSLog(__VA_ARGS__)#else#defineDLog(...)/**/#endif#defineALog(...)NSLog(__VA_ARGS__)2.进入Xcode 4,选择菜单“...转载 2019-05-21 16:19:08 · 487 阅读 · 0 评论 -
Xcode 下的Other linker flags 配置
Targets build setting 下的有一个选项是Other linker flags 的设置,用来填写Xcode 的连接器参数 :1. -ObjC2. -all_load3. -force_loadXcode 链接器参数 -ObjC: 加入这个参数后,连接器就会把静态库中德Objective-C类和分类都加在到最后的可执行文件中 -all_loa...转载 2019-06-12 21:01:55 · 901 阅读 · 0 评论 -
Objective-C #define 用法解析
Objective-C : #define 用法解析在 C 语言中,预处理代码 (Preprocessor) 是非常强大的工具,能让你的代码变得更加易读和易改。利用预处理代码,你可以重新定义代码的一部分,使得你的代码更适合你的风格。预处理代码 (Preprocessor) 在代码编译之前被提前处理。预处理代码均由一个井号 (#) 打头。1. 关于 #define#define 声明主要用...转载 2018-10-18 18:00:25 · 258 阅读 · 0 评论