IOS
文章平均质量分 55
yx1166
每天进步一点点
展开
-
iOS strong和copy的区别
本文转载地址:https://www.jianshu.com/p/62913d6cbc40在iOS开发中,几乎每天都会遇到NSString属性的声明,在ARC内存管理机制下,NSString属性声明有两个关键字可以选择:strong和copy;那么问题来了,什么时候用strong,什么时候用copy?下面我写一个小demo,希望大家能看懂,也还请路过的大神指教!我在.h文件中声明了两个NSString属性,如下:@property(nonatomic, strong) NSStr转载 2021-08-11 15:11:50 · 532 阅读 · 0 评论 -
IOS OC项目中引入Swift库的注意事项
在OC项目中引入Swift库,一般建立桥接文件,并在Target > Build Settings中做相应的设置即可。但是,如果在OC项目中使用了C++的库,项目的技术就变成Objective-C++,在Objective-C++的情况下,即使做了桥接文件,在使用“@import”导入Swift库时,Xcode会提示@import when modules are disabled针对这种情况,我们要用转换的方式来导入Swift库,将:@import Name; 改为.原创 2020-12-01 18:24:44 · 1831 阅读 · 0 评论 -
IOS 解析Apple拒绝应用上架的CrashLog文件
一、我们为什么要看CrashLog文件我们的目的是为了查找应用闪退的原因。既然如此,针对已上架应用的闪退信息,我们是否有完备的方案?而不仅仅是为了解析Apple提供的CrashLog文件,对于即将上线的应用,Apple的审核只是其中一个很小的环节,Apple在审核过程中发生了闪退,它会提供CrashLog文件给我们分析,帮助我们找到原因。在Apple审核环节闪退,这是万幸。如果上线之后,应用发生闪退,我们该如何应对?这就要求我们要做好已上架应用的【维护】层面的事情,包括对闪退的监控以及其他维度的监测。(原创 2020-10-29 14:45:30 · 414 阅读 · 0 评论 -
iOS 唤起APP之Universal Link(通用链接)
本文转载地址:https://www.cnblogs.com/guoshaobin/p/11164000.html 包含Xcode11.0的配置方式和iOS13出现的问题。 什么是Universal Link(通用链接) Universal Link(通用链接)是Apple在iOS9推出的一种能够方便的通过传统HTTPS链接来启动APP的功能,可以使用相同的网址打开网址和APP。当你...转载 2020-02-21 15:18:21 · 628 阅读 · 0 评论 -
iOS证书、描述文件相关知识
开发者证书和adhoc证书有什么区别?用途上有什么区别? 答:开发者证书,用于开发环境下对真机的测试。adhoc证书,不用于开发环境,用于公测环境,可以由多个用户一起测试。 一个app总共需要哪些证书? 答:需要4个证书。分别是开发证书、发布证书、推送开发证书(1个appID对应1个证书)、推送发布证书(1个appID对应1个证书)。如果有推送功能,则需要申请推送开发证书、推...原创 2020-02-21 11:46:54 · 522 阅读 · 0 评论 -
ios developer documentation -- APP life cycle
APP是您的自定义代码和系统框架之间相互作用的结果。 系统frameworks提供了所有应用程序需要运行的基本基础架构,并提供了定制基础架构所需的代码,并为APP提供所需的外观和感觉。 为了有效地做到这一点,有助于理解一些关于iOS基础设施以及它的工作原理。iOS框架在其实现中依赖于设计形态,例如模型、视图控制器、和代理。 了解这些设计形态对于创建成功的APP至关重要。 这也有助于熟悉Object...原创 2018-04-25 11:25:04 · 267 阅读 · 0 评论 -
ios UIViewController 生命周期
UIViewController的生命周期为下图所示:一个UIViewController从Disappeared到Appeared的顺序为:viewWillAppear - viewDidAppear。从Appeared到Disappeared的顺序为:viewWillDisappeared - viewDidDisappear。此外,还有loadView方法,官方解释如下:- (void)lo...原创 2018-04-25 10:09:50 · 169 阅读 · 0 评论 -
ios - view层架构之笔记
通过对view层的了解,对我所做的项目进行了更改。但是,并不全部符合项目本身。所以,对项目view架构的更改如下:@property (nonatomic, weak) IBOutlet NSLayoutConstraint *lcCommentsNumWidth;...#pragma mark - life cycleviewDidLoadviewWillAppear#pragma...原创 2018-04-24 10:56:02 · 192 阅读 · 0 评论 -
ios developer documentation -- UIViewController
UIViewController管理UIKit应用程序的视图层次结构的对象。概述UIViewController类定义了所有视图控制器共有的公共行为。 你很少直接创建UIViewController类的实例。 相反,您继承UIViewController并添加管理视图控制器的视图层次结构所需的方法和属性。视图控制者的主要职责包括以下内容:更新视图的内容,通常是为了响应底层数据的变化。响应用户与视图...原创 2018-04-23 21:30:45 · 129 阅读 · 0 评论 -
ios developer documentation -- 理解事件处理、响应者和响应者链
了解事件如何通过您的应用传播以及如何处理它们。概述APP使用响应者对象接收和处理事件。 响应者对象是UIResponder类的任何实例,通用子类包括UIView,UIViewController和UIApplication。响应者接收原始事件数据,并且必须处理该事件或将其转发给另一个响应者对象。 当您的APP收到事件时,UIKit会自动将该事件指向最合适的响应者对象,即第一响应者。未处理的事件从响...原创 2018-04-25 15:54:37 · 239 阅读 · 0 评论 -
ios developer docmentation -- UIAlertController
UIAlertController向用户显示警报消息的对象。概述使用此类可以配置提示控制器和动作按钮,其中包含要显示的消息以及要从中选择的操作。使用所需的按钮、样式配置提示控制器后,使用presentViewController:animated:completion:方法呈现它。 UIKit以模态方式在您的应用内容上显示提醒和操作表。除了向用户展示提示框外,您还可以将按钮事件与提示框相关联,以便...原创 2018-04-26 09:48:13 · 122 阅读 · 0 评论 -
iOS 扫码知识总结(二)
本文主要介绍扫码中用到的类。基本使用流程AVCaptureSession是AVFoundation的核心类,用于捕捉视频和音频,协调视频和音频的输入和输出流.下面是简书上找的围绕AVCaptureSession的图核心类介绍创建AVCaptureSession设置SessionPreset,用于设置output输出流的bitrate或者说画面质量// 1 创建se...转载 2018-10-18 11:19:08 · 271 阅读 · 0 评论 -
ios 扫码知识总结一
二维码介绍二维码,3个回形大方块,是为了给相机定位,黑白块,黑块代表1,白块代表0,8个一组,组成二进制信息。科普:二维码原理是什么?这个小视频,简单介绍二维码原理。下图是二维码原理图。扫描二维码扫描二维码,有2种方式,一种是采用google的ZXing代码的oc版本(个人维护,已停止更新),一种是采用原生的扫码方式,即自带的AVFoundation.framework。我个人...转载 2018-10-17 20:53:00 · 907 阅读 · 0 评论 -
iOS调试-lldb学习总结
Xcode的使用中总是离不开调试这个环境,在一年多的iOS开发时间中,我更多地依赖于XCode本身提供的GUI工具来进行调试,而对LLDB敬而远之,这段时间好好学习了LLDB的使用,发觉我错过了太多东西了……因此做一个比较完备的总结,也希望在写这篇文章的过程中进一步学习LLDB调试的各种实践方法。LLDB阐述LLDB 是一个有着 REPL 的特性和 C++ ,Python 插件的开源调试器...转载 2018-10-29 15:13:04 · 356 阅读 · 0 评论 -
使用Carthage 错误 error: unable to find utility "xcodebuild", not a developer tool or in PATH
error: unable to find utility “xcodebuild”, not a developer tool or in PATHhttps://stackoverflow.com/questions/40743713/command-line-tool-error-xcrun-error-unable-to-find-utility-xcodebuild-n...转载 2018-10-29 16:23:55 · 1086 阅读 · 0 评论 -
objective-c 编程基础(3.10 修饰符)
一般声明变量,都用nonatomic。UI控件,用weak。基本数据类型,用assign。对象类型,用strong。原创 2018-04-12 22:03:19 · 136 阅读 · 0 评论 -
objective-c 编程基础(3.9 @selector)
@selector是什么?@selector就是取类的编号。他的行为基本可以等同C语言的中函数指针,只不过C语言中,可以把函数名直接赋给一个函数指针,而Objective-C的类不能直接应用函数指针,这样只能做一个@selector语法来取.取@selector的值@interface foo -(int)add:int val; @end SEL class_func ; /...原创 2018-04-12 21:32:43 · 236 阅读 · 0 评论 -
app架构
一个好的app架构,能够经得起时间的检验,能让开发者愉快并非常自豪,拓展性非常好。架构是什么?一个app的架构,包含外在和内在2个方面。外在,指的是项目的目录。内在,指的是支撑app的基础运行库。具体包括但不限于:网络请求框架、日志输出框架、图片处理框架、地图、推送等基础必备的库。有了这些库,这个框架不一定是高效的,还要看框架的使用和搭建的成果,框架改动的次数。怎样设计一个好架构?架构,只有适合自...原创 2018-04-12 21:05:32 · 639 阅读 · 0 评论 -
iOS开发多线程atomic nonatomic区别
摘要atomic和nonatomic区别用来决定编译器生成的getter和setter是否为原子操作。atomic提供多线程安全,是描述该变量是否支持多线程的同步访问,如果选择了atomic 那么就是说,系统会自动的创建lock锁,锁定变量。nonatomic禁止多线程,变量保护,提高性能。atomic:默认是有该属性的,这个属性是为了保证程序在多线程情况下,编译器会自动生成一些互斥加锁代转载 2016-07-26 11:40:16 · 816 阅读 · 0 评论 -
ios 设置tableViewcell中的图片大小
在我的项目中,很多地方都希望将UITableViewCell 中的imageView 能根据自己图片的大小来进行展示,而就为了解决这个问题又觉得重写UITableViewCell 很不值得。其实我就只有 图片变形的问题。所以我第一时间想到的是调整imageView 内容布局模式以及外框大小,cell.imageView.contentMode=UIViewContentModeCenter;c转载 2016-07-08 19:14:16 · 7349 阅读 · 3 评论 -
ios 基本知识总结(一)
1、label换行警告:label的高度起码要有2行的高度,不然,无论怎么设置,都不会出现换行效果。如果要设置TableViewCell里的文字换行,设置cell高度的时候,请先在TableView的xib文件中设置cell的高度,不然cell的高度满足不了换行的高度,是没有效果的。//换行,一般设置2个属性,lineBreakMode和numberOfLines , //line原创 2016-07-20 13:36:03 · 623 阅读 · 0 评论 -
swift 数组的应用
本文简单介绍数组的使用方式。关于数组,你要知道:数组中的集合元素是有序的,可以重复出现 swift数组类型是Array,是一个泛型集合 数组的初始化 数组分成:可变数组和不可变数组使用let修饰的数组是不可变数组使用var修饰的数组是可变数组// 定义一个可变数组,必须初始化才能使用var array1 : [String] = [String]()//转载 2016-10-26 21:52:45 · 212 阅读 · 0 评论 -
ios xib中的view绑定
在xib中,view可以通过连线来绑定。将Rederencing Outlets 连线至 File's Owner,即可完成view的绑定。如下图所示:原创 2017-12-11 16:41:03 · 502 阅读 · 0 评论 -
ios 图片已加入文件夹,调用时,无法显示
ios 代码无法读取到图片。正确操作如下:1、把图片放入文件夹里面。2、把图片add进去。如下图所示:原创 2017-12-12 16:27:33 · 662 阅读 · 0 评论 -
IOS设计模式01-单例模式
1、什么是单例模式?一个类只有1个实例。2、单例模式用来解决什么问题?单例模式主要是用来共享信息。3、单例模式的优缺点优点:可以方便的共享信息、也可以称为是一个“管理中心”。缺点:破坏了封装性。因为单例可以一处定义、多处调用,多次调用增加了耦合。4、单例的写法4.1基本写法首先创建单例类,以下为.h文件#import @interface peisona原创 2018-01-04 21:29:49 · 126 阅读 · 0 评论 -
mac搭建IPV6网络环境
1、为什么要搭建IPV6环境?因苹果审核要求,iOS设备需在ipv6网络环境下正常运行。2、如何搭建IPV6环境?有2种方式。1,有一些网站可以用来测试网络链接检查是否在ipv6下工作正常。2、通过mac电脑来建立ipv6环境。下面主要介绍如何在mac上建立ipv6环境。1、确保mac是连网线,而不是wifi。2、在设置中,找到“共享”。按住option键时点击共享按钮进入界面才会出现“创建NAT...原创 2018-04-02 10:05:43 · 4193 阅读 · 0 评论 -
ios NSDate时间不符的解决办法
ios获取json数据,把年月日时分秒转换成NSDate对象,总是发现小时不符合,年月日分秒倒是没问题。正确写法如下:NSDate *date = [NSDate date]; // 直接初始化的时间, 也是当前时间 //NSDate *date = [[NSDate alloc]init]; NSTimeZone *zone = [NSTimeZone systemTime...转载 2018-03-27 17:36:21 · 1170 阅读 · 0 评论 -
ios -- AFNetworking 3.0 指南
AFNetworking 3.0指南 -- 编写于2017年11月19日AFNetworking 3.0 是AFNetworking最新最主要的版本,一个愉快的网络开发库,使用于iOS、tvOS、macOS、watchOS。为了保持这个库的可维护性,3.0将移除对现在不推荐使用的基于NSURLConnection的API的所有支持。如果您的项目以前使用这些API,则建议您现在升级到基于NSURLS...原创 2018-04-10 11:03:16 · 415 阅读 · 0 评论 -
ios - 引入第三方类库之手动导入
ios开发,引入第三方类库有3种方式。CocoaPodsCathage 手动导入手动导入步骤如下:1、将第三方类库下载完毕。2、在项目中合适的地方建立文件夹,将.h、.m、.a等文件放入。(包含但不限于这3种文件)3、在项目target -> General ->Linked Frameworks and Libraries下添加第三方类库的framework文件。...原创 2018-04-10 16:36:28 · 3419 阅读 · 0 评论 -
ios依赖管理工具--Carthage的安装和使用
本文转载地址:https://www.jianshu.com/p/a734be794019Carthage和CocoaPods相比,轻量级一些,在swift中使用很方便,它本身就是swift写的。1.brew安装carthage之前需要安装brew,进入官网(https://brew.sh/index_zh-cn.html) 有详细的安装步骤。获取 Homebrew打开终端Tterminal`,输...转载 2018-03-28 13:50:12 · 970 阅读 · 0 评论 -
objective-c 编程基础(3.8 block)
block,块。定义block是一个代码段。主要有3方面的作用:保存一段代码,当作函数调用。主要用来做回调。除了可执行代码外,还可以包含变量。格式double (^multi) (double,double) = ^(double a, double b) { return a * b;};double:返回值类型,如果没有返回值则为void(^multi):块定义需要有一个^标记,m...原创 2018-04-12 00:04:32 · 116 阅读 · 0 评论 -
ios架构篇-view层
大部分系统、大部分的架构模式,都使用MVC。MVVM、MVP等模式,本质上都是对MVC的演变。ios架构,也是如此。在移动领域,app中v和c都非常容易区分,最重要的是controller这层。往往我们觉得不像v、也不像c的东西,就直接放到controller里面,最直接的结果就是造成controller庞大、复杂,不容易维护,平时迭代升级还好,如果遇到较大的需求变更或者迭代次数变多,就会变得很困...转载 2018-04-17 21:57:51 · 382 阅读 · 0 评论 -
IOS 正则验证
判断是不是8到20位的字母和数字组合,代码如下: NSString *text = @"1234567g"; NSString *regex = @"^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,20}$"; NSPredicate * pred = [NSPredicate predicateWithFormat原创 2016-07-12 15:08:46 · 281 阅读 · 0 评论