iOS开发等常用知识点
文章平均质量分 64
iOS开发常用知识点、Object-C基础知识、项目工程中常用的示例、第三方库基础使用
hbblzjy
之前总是看别人的技术和博客,现在也想把自己喜欢的技术内容,技术博客,相关信息分享给大家,希望共同学习,有相关问题的可以发邮件78841151@qq.com,欢迎各界技术男指导学习!
展开
-
iOS开发之编译OpenSSL静态库
此时一个架构对应的libssl.a、libcrypto.a静态库和头文件已经生成,此时你需要把对应的架构文件夹,如openssl_arm64,放到一个自定义的文件夹下,当然也可以直接放到源码文件夹的上层文件夹下,然后删除源码文件夹,重新解压下载的OpenSSL源码压缩包,开始编译其他架构下的静态库,从第二步开始执行,一定要注意修改对应的架构名称,一定要注意修改对应的架构名称,一定要注意修改对应的架构名称,重要的事说三遍!原创 2023-09-13 14:14:43 · 1965 阅读 · 0 评论 -
iOS开发之查看静态库(.a/.framework)中包含的.o文件和函数符号(ar,nm命令)
符号的类型是以一个字母的形式显示的,小写字母表示这个符号是本地(local)的,而大写字母则表示这个符号是全局的(global,externel)。一般来说,类型有以下几种:T、D、B、U、W。.a/.framework其实是把编译生成的.o文件,打包成一个.a/.framework文件。W,weak的缩写,表示如果其他函数库中也有对这个符号的定义,则其他符号的定义可以覆盖这个定义;小写表示是本地符号,大写表示全局符号(external);U表示没有定义的,在这个库里面使用了,但是在其他库中定义的符号;原创 2023-08-24 14:25:10 · 2893 阅读 · 0 评论 -
iOS开发之Code:-402653103,Code:5
常见问题原创 2023-01-10 21:00:23 · 1133 阅读 · 1 评论 -
iOS开发之layer.frame,layer.anchorPoint,layer.position对frame的影响
iOS开发之layer.frame,layer.anchorPoint,layer.position对frame的影响原创 2023-01-06 18:07:57 · 663 阅读 · 0 评论 -
iOS开发之iOS15.6之后拉流LFLiveKit,画面模糊及16.1马赛克问题
iOS开发之iOS15.6之后拉流LFLiveKit,画面模糊及16.1马赛克问题原创 2022-12-06 14:58:25 · 1332 阅读 · 0 评论 -
iOS开发之自定义的framework添加第三方framework,lipo和ar命令看.o文件
由于需要将之前生成的mediapipe.framework添加到自己的framework中,但是很奇怪用普通的拖拽方式添加,项目工程在加载运行自己的framework时,总是找不到mediapipe.framework中的头文件,而只编译自己的framework时,也是可以通过的,或者直接将mediapipe.framework添加到项目工程中,调用库中的方法也可以使用,所以在此记录一下遇到这种情况时,怎么处理。原创 2022-11-17 17:43:08 · 2453 阅读 · 0 评论 -
iOS开发之Undefined symbol:_OBJC_CLASS_$_****
更新了Xcode14.0.1以后,项目突然曝出了此问题Undefined symbol:_OBJC_CLASS_$_****,因此记录一下,解决此问题的步骤原创 2022-10-27 14:42:56 · 17663 阅读 · 0 评论 -
iOS开发之The code signature version is no longer supported.
遇见此问题,解决方法一:Build Setting -> Other Code Signing Flags 添加 --generate-entitlement-der解决方法二:Xcode > Target > General 找到 "Embedded Framework, Libraries and Embedded Content" Set all frameworks in theEmbeddedfield to "Do not Embed"我的就是使用方法..原创 2022-05-25 16:12:35 · 759 阅读 · 0 评论 -
iOS开发之strip处理framework的调试符号
iOS安全,符号表中有些符号是必须的,但是很多符号都是可以去掉的,符号表中可以看到很多暴露的类名、函数名,让攻击者可以看到有哪些关键的逻辑,所以要剥去、除去不必要的符号表,这样也可以将framework包进行瘦身,删除framework中的调试符号,首先 cd 到framework文件夹下,然后执行:strip -S -X (包名)...原创 2021-12-17 17:54:48 · 2580 阅读 · 0 评论 -
常用知识之CMSampleBufferRef系
//// ViewController.m// Demo//// Created by on 2021/9/28.//#import "ViewController.h"#import <CoreMedia/CoreMedia.h>@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; .原创 2021-09-29 11:01:07 · 2360 阅读 · 0 评论 -
常用知识之iOS15代码、功能、属性新适配
环境工具:iOS15、Xcode131、UINavigationBar、UITabBar、UIToolBar部分属性在iOS15上是无效的,比如:导航栏颜色、字体颜色、阴影设置等,需要使用iOS13更新的API中UINavigationBarAppearance、UITabBarAppearance的实例对象来设置。对导航栏的性能做了优化,默认情况下,如果导航栏与视图没有重叠,导航栏的背景透明,如果重叠,会变成模糊的效果。如果想要一直就是模糊效果,可以通过改变scrollEdgeAppearan原创 2021-09-22 16:23:47 · 1168 阅读 · 0 评论 -
常用知识之将Demo上传到Github上的操作步骤(2021.09)
早在2016.08就整理过一篇相关文章:将项目Demo上传到Github上的操作步骤_hbblzjy的博客-CSDN博客之前我有很多代码直接上传到了CSDN上,主要是因为操作方便,今天我就说说将源码Demo上传到Github上的操作步骤。首先,你要先确定自己在Github上有自己的账户名,账户邮箱和密码。如果没有可以先去https://github.com注册,如果有了可以点击Sign In登录。之后,我们开始进行命令行操作(当然你也可以下载客户端进行操作)打开终端,输入:第一步:git init第二步:g原创 2021-09-14 15:19:26 · 234 阅读 · 0 评论 -
OC常用知识点之陀螺仪测方向
简单记录一下,封装了一个BHMotionOrientation类,以供大家参考,当然demo也添加了一view的基础旋转。//// BHMotionOrientation.h// MotionOrientationDemo//// Created by JasonHam on 2021/9/13.//#import <Foundation/Foundation.h>NS_ASSUME_NONNULL_BEGINtypedef NS_ENUM(NSInteger,原创 2021-09-14 09:53:31 · 413 阅读 · 0 评论 -
iOS开发之lldb调试命令
首先声明一点,这是把之前混合的博客内容,又进行了单独整理,望大家多多包含......开发过程中,我们难免需要断点调试,但是断点调试之后,我们想知道一些对象信息或者堆栈信息,应该怎么办?相信断点调试过的开发者都知道,断点执行后,会在输出框内出现(lldb)这样的字眼,此时,我们就需要相关的调试命令,然后输出我们想要的内容了,现在就开始简单的介绍一下吧!1、po命令print object的缩写,表示显示对象的文本描述,如果对象不存在,则打印为nil;比如:你想知道一个视图包含了哪些子视图,你可原创 2020-07-11 18:09:55 · 620 阅读 · 0 评论 -
iOS开发之如何优化App的电量
终于有时间整理一下,以前没来的及记录的知识点了,话不多说,开始表演......程序的耗电主要是四个方面:CPU处理,定位,网络,图像;对于这四个方面的优化,我们可以这么做:CPU处理:1、尽可能降低CPU、GPU的功耗,比如:少用定时器;2、优化I/O操作(什么,你不懂什么是I/O操作?简单的来说就是对数据的处理,读写操作),比如:不要频繁的写入小数据,而是积累到一定的数量再写入;读写大量的数据可以使用Dispatch_io,GCD内部已经做了优化;数据量比较大的时候,使用数据库;定原创 2020-07-09 22:20:46 · 515 阅读 · 0 评论 -
iOS基础:深入理解Objective-c中@class的含义
objective-c中,当一个类使用到另一个类时,并且在类的头文件中需要创建被引用的指针时,如下面代码:A.h文件#import "B.h" @interface A : NSObject { B *b; } @end 为了简单起见:A类是引用类,B类是被引用类,这里先不考虑A类的实现文件。转载 2016-05-11 11:56:35 · 426 阅读 · 0 评论 -
关于NSString和NSMutableString的相关用法和基本介绍
Objective-C 中核心处理字符串的类是 NSString 与 NSMutableString ,这两个类最大的区别就是NSString 创建赋值以后该字符串的内容与长度不能在动态的更改,除非重新给这个字符串赋值。而NSMutableString 创建赋值以后可以动态在该字符串上更改内容与长度。 NSString 常用方法总结+(id)stringWithConten原创 2016-05-02 15:14:29 · 3569 阅读 · 0 评论 -
Mac OS 终端常用命令基础
基础概念OS X 采用的Unix文件系统,所有文件都挂在跟目录“ /” 下面,所以不在要有Windows 下的盘符概念。比如什么“C:”你在桌面上看到的硬盘都挂在 /Volumes 下。比如接上个叫做“XX”的移动硬盘,桌面上会显示出一个硬盘图标,它实际在哪里呢?在终端里执行: “ls /Volumes/XX”, 看看显示出的是不是这个移动硬盘的内容。 驱动所在位置: /S转载 2016-04-28 13:32:20 · 777 阅读 · 0 评论 -
关于颜色色值和对应名称的总结
颜色值定义HTML颜色为红,绿,蓝三色值(RGB)的组合使用一个十六进制表示法(十六进制)。可以给光源之一的最低值是0(十六进制:00)。最高值是255(十六进制:FF)。被指定为十六进制值3对两个数字,一个#符号开始。颜色颜色的十六进制颜色RGB#000000RGB(0,0,0)原创 2016-04-19 20:40:58 · 9374 阅读 · 0 评论 -
IOS中的数据存储方式,特点,使用情况
数据存储的核心都是写文件,主要有四种持久化方式:属性列表(Plist),对象序列化,SQLite数据库,CoreData。存储Plist: 键值进行存储,不能存储对象。对象需要序列化编码才能写入文件。NSAarry,NSDictionary,NSData,NSString等类型可以直接调用writeToFile方法把数据存储到plist文件中,但是数组中的元素或者字典中的元原创 2016-04-07 22:31:50 · 1736 阅读 · 0 评论 -
关于ARC的介绍和ARC与MRC混编解决
1. ARC & MRC 混合开发在项目开发中,遇到使用MRC开发的第三方库怎么办?例如:ASI1> 尝试使用Xcode的转换工具(失败率比较高)2> 在编译选项中,为MRC的程序添加-fno-objc-arc标记,表明在编译时,该文件使用MRC编译备注:(1) 演示中使用的RegexKitLite还需要导入libicucore.dylib动原创 2016-04-07 00:02:27 · 1857 阅读 · 0 评论 -
在Xcode中使用Git进行源码版本控制
在应用程序开发过程中,很重要的一部分工作就是如何进行源码的版本控制。当代码出现问题时,我们就需要将代码恢复到原先正常的版本。如果是多个人共同开发一个项目,那么代码的控制就会非常复杂。幸运的是,开发者不需要自己控制这些,因为有专门的软件来负责,叫做版本控制系统。版本控制系统,或者说修改控制系统,实际上是一种检测源文件的改变并将其保存留作以后参考使用的机制(软件)。此外,它还能记录其他有用信息,比翻译 2016-05-31 22:30:32 · 4815 阅读 · 0 评论 -
IOS中用到的缓存
App已经与我们形影不离了,不管在地铁上、公交上还是在会场你总能看到很多人拿出来手机,刷一刷微博,看看新闻。据不完全统计有近一半的用户在非Wifi环境打开App,以下为一个典型iPhone和Android App(50W+用户)的友盟后台数据:3G、2G的数据连接往往不稳定(特别在公交或者地铁上),这时打开一些App就会像这样:当然也会有一些体验很好转载 2016-04-12 21:26:11 · 846 阅读 · 0 评论 -
IOS常见的加密方法,常用的MD5和Base64
iOS代码加密常用加密方式iOS代码加密常用加密方式,常见的iOS代码加密常用加密方式算法包括MD5加密、AES加密、BASE64加密,三大算法iOS代码加密是如何进行加密的,且看下文MD5 iOS代码加密: 1. MD5 iOS代码加密 创建MD5类,代码如下:#import #import @interface MD5String : NSObject+(原创 2016-05-02 14:23:48 · 1559 阅读 · 0 评论 -
Git的简单使用
Git学习小结分享使用git一段时间,只是简单使用git pull、push、add、commit等命令,对git也是一直半解,最近才静下心来好好从头看了一遍,又有许多收获。Git是什么?Git是目前世界上最先进的分布式版本控制系统(没有之一)。Git安装在Mac os上安装下载:http://code.google.com/p/git-os转载 2016-04-12 21:35:18 · 754 阅读 · 0 评论 -
iOS中NSBundle的介绍
bundle是一个目录,其中包含了程序会使用到的资源.这些资源包含了如图像,声音,编译好的代码,nib文件(用户也会把bundle称为plug-in).对应bundle,cocoa提供了类NSBundle.我们的程序是一个bundle. 在Finder中,一个应用程序看上去和其他文件没有什么区别.但是实际上它是一个包含了nib文件,编译代码,以及其他资源的目录. 我们把这个目录叫做程序的m原创 2016-06-12 14:12:28 · 2424 阅读 · 0 评论 -
极光推送iOS SDK教程
iOS SDK 调试指南iOS 调试思维导图2确认证书请到“应用详情页面”确认证书可用性:3开发环境测试在对 JPush iOS 开发环境进行测试前,请确保 3 个统一:App 是开发环境打包(开发证书 Development)上传了开发证书并验证通过Portal 上的应用设置为开发环境发布环境测试在转载 2016-07-12 12:37:44 · 851 阅读 · 0 评论 -
真机测试遇到0xE8008016错误修改方法
错误描述真机测试过程中,更换Provisioning Profile之后,出现错误:The entitlements specified in your application’s Code Signing Entitlements file do not match those specified in your provisioning profile.解决办法网上的办法有两种原创 2016-06-06 17:32:47 · 2866 阅读 · 0 评论 -
20个必知的正则表达式
正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。列目录时, dir *.txt或ls *.txt中的*.txt就不是一个正则表达式,因为这里*与正则式的*的含义是不同的。构造正则表达式的方法和创建数学表达式的方法一样。也就是用多种元字符与运算符可以将小的表达式结合原创 2016-06-16 11:58:32 · 556 阅读 · 0 评论 -
iOS之深入了解控制器View的加载
首先我们得知道,控制器view是通过懒加载的方式进行加载的,即用到的时候再加载。loadView方法当我们用到控制器view时,就会调用控制器view的get方法,在get方法内部,首先判断view是否已经创建,如果已存在,则直接返回存在的view,如果不存在,则调用控制器的loadView方法,在控制器没有被销毁的情况下,loadView也可能会被执行多次viewDidL转载 2016-07-14 11:56:23 · 875 阅读 · 0 评论 -
NSAttributedString富文本简单介绍和常用方法浅析
NSAttributedString基本知识点介绍1、初始化方法- (instancetype)initWithString:(NSString *)str;- (instancetype)initWithString:(NSString *)str attributes:(nullable NSDictionary *)attrs;- (instancetype)initWith原创 2016-07-25 11:29:04 · 1152 阅读 · 0 评论 -
Xcode快捷键大全
苹果键盘说明:⌘——Command ( )——Control ——Option (alt)⇧——Shift⇪——Caps Lockfn——功能键就是fn新建项目 command+shift+n新建文件 command+n新建空文件 command+control+n打开 command+o关闭窗口 command+w保存所有文件 command+op原创 2016-06-17 11:49:56 · 920 阅读 · 0 评论 -
iOS基础常用细节问题处理65条
1. 不可变数组 转变为可变数组 //声明实例变量的数组 必须记得实现//对于遍历数组找到对象后 如果还需要查找 记得先结束 再查找(return/break)NSArray * arr = @[@"人在囧途",@"煎饼侠",@"西游记",]; NSMutableArray * arr = [NSMutableArray arrayWithArray:arr];转载 2016-07-26 12:19:17 · 1677 阅读 · 0 评论 -
iOS开发经验相关知识
一、 iPhone Size手机型号屏幕尺寸iPhone 4 4s320 * 480iPhone 5 5s320 * 568iPhone 6 6s375 * 667iphone 6 plus 6s plus414 * 736二、 给navigation Bar 设置 title 颜色UI转载 2016-07-06 12:07:17 · 813 阅读 · 0 评论 -
iOS关于蓝牙连接的简单介绍与使用
下面是两台iPhone6连接同一台蓝牙设备的结果:**成功连接**** peripheral: with UUID: 50084F69-BA5A-3原创 2016-07-01 18:07:27 · 12561 阅读 · 1 评论 -
关于iOS常用的26中公共方法,可copy的代码
1. 获取磁盘总空间大小//磁盘总空间+ (CGFloat)diskOfAllSizeMBytes{ CGFloat size = 0.0; NSError *error; NSDictionary *dic = [[NSFileManager defaultManager] attributesOfFileSystemForPath:NSHomeDirector原创 2016-07-05 10:43:24 · 731 阅读 · 0 评论 -
iOS9关键字的简单使用
在iOS 9 苹果推出了很多关键字, 目的其实很明确, 主要就是提高开发人员的效率, 有益于程序员之间的沟通与交流, 在开发中代码更加规范!1. nullable 与 nonnullnullable : 表示可以为 nilnonnull : 表示不可以为 nil这两个关键字只能修饰对象, 不能修饰基本数据类型, 可以用在属性, 方法的参数, 方法的返回值使用, 在默认情况下, 不加转载 2016-07-18 12:22:15 · 522 阅读 · 0 评论 -
一个App与另一个App之间的交互,添加了自己的一些理解
URL Scheme 是什么?iOS有个特性就是应用将其自身”绑定”到一个自定义 URL scheme 上,该 scheme用于从浏览器或其他应用中启动本应用。常见的分享到第三方之间的跳转都是基于Scheme的。通过对比网页链接来理解iOS 上的 URL Schemes,应该就容易多了。URL,我们都很清楚,http://www.apple.com就是个URL,我们也叫它链接或网址原创 2016-07-07 11:43:15 · 4220 阅读 · 1 评论 -
最新的App上架教程Object-C
准备开发者账号完工的项目上架步骤一、创建App ID二、创建证书请求文件 (CSR文件)三、创建发布证书 (CER)四、创建Provisioning Profiles配置文件 (PP文件)五、在App Store创建应用六、打包上架一、创建App ID1.打开苹果开发者官网,点击“Account”登录会员中心。2.填写信息原创 2016-07-18 12:29:50 · 2076 阅读 · 1 评论 -
常使用的宏定义归类(新添加的一些)
自己新添加的一些可用常用定义://安全释放#define RELEASE_SAFELY(__Pointer) do{[__Pointer release],__Pointer = nil;} while(0)// 屏幕的物理高度#define ScreenHeight [UIScreen mainScreen].bounds.size.height// 屏幕的物理宽度原创 2016-07-08 11:52:30 · 2989 阅读 · 0 评论