
ios
文章平均质量分 64
西红柿天尊
精通android,ios,java开发。
展开
-
Mac使用Brew安装Redis
brew的常用命令如下:brew search ** //查找某个软件包brew list //列出已经安装的软件的包brew install ** //安装某个软件包,默认安装的是稳定版本brew uninstall ** //卸载某个软件的包brew upgrade ** //更新某个软件包brew info ** //查看指定软件包的说明brew cache clean //清理缓存搜索rediszzpMac:~ zzp$ brew ..原创 2021-05-12 16:36:43 · 773 阅读 · 0 评论 -
iOS中创建多个Assets.xcassets文件
Assets.xcassets是用来存放图像资源文件的。将一个图片放在Assets里面如下图所示:随着项目的增大,有时候使用一个Assets.xcassets文件,就显得比较臃肿了,此时我们可以根据项目结构,新建多个Assets.xcassets文件,具体步骤如下:1、点击File -- New -- File...(或者点击command+N),在弹出的对面板中选择Asset Catalog2、点击Next,输入xcassets的文件名字Home;点击create,创建Home....原创 2021-04-12 16:59:14 · 1512 阅读 · 0 评论 -
ios13中的生命周期
在iOS13之后,我们在创建新的项目工程时候,会发现会出现两个代理,分别是:AppDelegate 和 SceneDelegate ,而AppDelegate 中的 window属性 也被放到了SceneDelegate中,所以iOS13中appdelegate的职责发现了改变:(使用场景的情况下)iOS13之前,Appdelegate的职责全权处理App生命周期和UI生命周期;iOS13之后,Appdelegate的职责是:1、处理 App 生命周期2、新的 Scene Session 生命周期.原创 2021-04-08 17:45:56 · 509 阅读 · 0 评论 -
快速搭建UITableViewCell
#import "ViewController.h"@interface ViewController ()<UITableViewDelegate,UITableViewDataSource>@property (nonatomic,strong) UITableView *tableView;@property (nonatomic, strong) NSArray *data;@end@implementation ViewController- (void)vie.原创 2021-04-08 14:42:00 · 157 阅读 · 0 评论 -
ios类扩展
在.m文件中为类增加私有的成员变量(属性)和方法。在左侧栏目文件夹处右键-New File-Objective-C File-File Type选extension-Class选你还要扩展的那个类-File填分类名称(不是文件名称)。但通常直接在原类.m文件里写:@interface 原有类名()——这是一个常用的方法,特别是在带xib的控制器页面,一些控件我们通常用类扩展的方式,存在扩展里面,这样使得这些控件成员是私有的,不会被外界干扰到。与分类不一样的是:类扩展的原类名称后面的括号中没有东西,也原创 2021-03-27 14:56:38 · 342 阅读 · 0 评论 -
ios开发中ARC下的assign和weak区别
在ARC中的assign和weak可以说非常相像,导致有很多人误以为他们是一摸一样的,在任何时候都可以划等价,但事实却不是这样。id类型的delegate属性到底是用assign还是weak@property (weak, nonatomic) id<AnyDelegate> delegate;@property (assign, nonatomic) id<AnyDelegate> delegate;大家众说纷纭,说都可以的,说assign的,说weak..原创 2021-03-31 15:05:59 · 166 阅读 · 0 评论 -
ios中几种跳转方式,普通,和StoryBoard跳转
一、纯代码界面跳转方式 1.导航控制器(UINavigationController) [self.navigationController pushViewController:NewVC animated:YES];//跳转到下一界面 [self.navigationController popViewControllerAnimated:YES];//返回上一界原创 2017-09-04 18:07:11 · 1036 阅读 · 0 评论 -
ios笔记
iOS 笔记 A选中你想要格式化的代码块,然后Control + I 声明变量时加*号的是指针变量,是用来存放对象的指针的。没有加*的是基本数据类型(int,float之类的)或者结构体等等,非对象。这个在函数前面的,就是函数的返回值类型了,和声明变量的规则一样的原创 2017-09-05 15:00:10 · 191 阅读 · 0 评论 -
在 iPhone 上使用 Popover Segue
iOS 系统提供了4种基本的转场方式:Show、Show Detail、Present Modally、Present as Popover。我们平常用的最多的是 Show ,就是从右向左滑入新页面,这也是最符合用户习惯的转场方式。Popover 一般是用在 iPad 上,在 iPhone 上不能直接使用。因为早些时候 iPhone 的尺寸都不大,苹果是非常不推荐在 iPhone 上使用 Po原创 2017-09-05 18:08:30 · 308 阅读 · 0 评论 -
Xcode快捷键
格式化代码----Control + I原创 2017-08-28 14:41:15 · 224 阅读 · 0 评论 -
StoryBoard页面跳转方式 Show,Show Detail,Present Modally,Present as Popover
Show根据当前屏幕中的内容,在master area或者detail area中展示内容。例如:如果app当前同时显示master和detail视图,内容将会压入detail区域。如果app当前仅显示master或者detail视图,内容则压入当前视图控制器堆栈中的顶层视图。Show Detail在detail area中展现内容。例如:即使app原创 2017-09-06 11:17:24 · 433 阅读 · 0 评论 -
Segue几种类型(Show、Show Detail、Present modally、Present as Popover)的区别
iOS中,segue的class为UIStoryboardSegue,用于storyboard中不同视图控制器间转场,即从一个视图控制器转场到另一个视图控制器。Segue的起点必须是一个view或者定义某些操作的对象,如:UIBarButtonItem、UIControl和UIGestureRecognizer。Segue分为以下几种类型,其中Push、Modal、Popover和Replac原创 2017-09-06 14:37:11 · 2869 阅读 · 0 评论 -
iOS中Block
一、概述Block是C级别的语法和运行时特性。Block比较类似C函数,但是Block比之C函数,其灵活性体现在栈内存、堆内存的引用,我们甚至可以将一个Block作为参数传给其他的函数或者Block。二、热身先看一个比较简单的Block例子:int multiplier = 7; int (^myBlock)(int) = ^(int num) { retu原创 2017-08-28 17:58:34 · 406 阅读 · 0 评论 -
由浅至深学习block
关于block在iOS 4.0之后,block横空出世,它本身封装了一段代码并将这段代码当做变量,通过block()的方式进行回调。这不免让我们想到在C函数中,我们可以定义一个指向函数的指针并且调用:12345bool executeSomeTask(void) { //do somethin原创 2017-08-28 19:52:31 · 441 阅读 · 0 评论 -
iOS中Block的基础
本章不会对Block做过多的实现研究。只是讲解基本的用法。纯粹基础知识。结合实际项目怎么去做举例。Block使用场景,可以在两个界面的传值,也可以对代码封装作为参数的传递等。用过GCD就知道Block的精妙之处。Block简介Block是一种比较特殊的数据类型。它可以保存一段代码,在合适的时候取出来调用。Block的修饰ARC情况下1.如果用copy修饰Block,该Blo原创 2017-08-28 19:54:31 · 288 阅读 · 0 评论 -
总结IOS界面间跳转的几种方法
注意:下面以FirstViewController(FVC)的按钮button点击后跳转到SecondViewController(SVC)为例说明:方式一:Storyboard的segues方式鼠标点击按钮button然后按住control键拖拽到SVC页面,在弹出的segue页面中选择跳转模式即可优点:操作方便,无代码生成,在storyboard中展示逻原创 2017-08-31 15:58:46 · 500 阅读 · 0 评论 -
iOS 浅谈页面跳转与返回的几种方法
一、模态视图视图切换,纯代码的情况下,没有NavigationController,一般会用到presentViewController来切换视图并携带切换时的动画。其中切换方法如下:– presentViewController:animated:completion: 弹出,出现一个新视图 可以带动画效果,完成后可以做相应的执行函数经常为nil– dismissViewCont...原创 2017-08-31 16:00:19 · 5395 阅读 · 0 评论 -
iOS 中storyBoard的简单使用
学习storyBoard,我们首先要了解它的优缺点:优点:可以快速开发、项目结构清晰、便于新人接收项目。缺点:不利于团队开发 文件易冲突。iOS 9 storyBoard变化的:通过storyboard references来连接不同的storyboard.可以为view controller中添加额外的小的view块.可以在navigation bar中添加两个按钮.原创 2017-08-31 16:41:20 · 2550 阅读 · 0 评论 -
Storyboard 教程(上)
Storyboard是在iOS5之后新增的一个令人兴奋的功能,使用Storyboard可以节省很多的时间来构建你的app界面.为了向你介绍什么是Storyboard,我会以一张图片为例.下面这张图就是你在本教程中使用Storyboard完成的一个app.你也许还不是十分了解这个app是做什么的,但是你可以清楚的看到它哪些界面,以及这些界面关系.你原创 2017-08-31 17:38:27 · 1302 阅读 · 0 评论 -
iOS开发中.a静态库制作及使用篇
一.库的简介1.什么是库?库是程序代码的集合,是共享程序代码的一种方式2.库的类型?根据源代码的公开情况,库可以分为2种类型开源库公开源代码,能看到具体实现如SDWebImage, AFNetworking闭源库不公开源代码,是经过编译后的二进制文件,看不到具体实现主要分为: 静态库,动态库3.静态库与动态库的区别?1.静态库原创 2017-09-26 17:06:57 · 364 阅读 · 0 评论 -
iOS 10 中 ATS 的问题
WWDC 15 提出的 ATS (App Transport Security) 是 Apple 在推进网络通讯安全的一个重要方式。在 iOS 9 和 OS X 10.11 中,默认情况下非 HTTPS 的网络访问是被禁止的。当然,因为这样的推进影响面非常广,作为缓冲,我们可以在 Info.plist 中添加 NSAppTransportSecurity 字典并且将 NSAllowsArbitra原创 2017-09-27 16:43:32 · 451 阅读 · 0 评论 -
MFi App端开发步骤
与附件设备通讯的App需设备支持的协议,这些协议由设备制造商维护,可是自定义或标准协议,标准协议可与其他设备通信,iOS不负责这些协议的维护。为防止命名空间冲突,推荐使用反DNS形式命名协议,如com.apple.myProtocol、com.dji.video、com.dji.protocol、com.dji.common。1、编程步骤1.1、引入框架与头文件外部附件框架(Ext...原创 2017-09-27 17:08:13 · 1573 阅读 · 0 评论 -
dispatch_queue_concurrent
并发队列特点以先进先出的方式,并发调度队列中的任务执行如果当前调度的任务是同步执行的,会等待任务执行完成后,再调度后续的任务如果当前调度的任务是异步执行的,同时底层线程池有可用的线程资源,会再新的线程调度后续任务的执行队列创建dispatch_queue_t queue = dispatch_queue_create("com.itheima.queue", DISPA原创 2017-09-12 19:05:03 · 4054 阅读 · 0 评论 -
iOS开发多线程以及子线程UI刷新
"当您需要执行一个冗长的任务,但是不想让它阻止执行应用程序的其余部分。您可以使用线程来避免阻塞应用程序的主线程、处理用户界面和与事件相关的行动。线程也可以用来将大量的工作分成几个较小的工作,从而导致性能提高多核计算机上"说起线程 就不得不提起NSThread类NSOperationQueue和GCD 所以我们可以通过开子线程的方法来提高程序的运行速度,基本我们创建子线程的方法大致分原创 2017-09-12 19:45:25 · 1332 阅读 · 0 评论 -
ios 中请求主线程刷新UI
if ([NSThread isMainThread]) { [self.downloadMapBtn setImage:[UIImage imageNamed:@"download_map.png"] forState:UIControlStateNormal]; [self.downloadMapBtn setNeedsDi原创 2017-09-12 19:53:13 · 3030 阅读 · 0 评论 -
基本概念和Dispatch Queue
iOS的三种多线程技术 1.NSThread 每个NSThread对象对应一个线程,量级较轻(真正的多线程)2.以下两点是苹果专门开发的“并发”技术,使得程序员可以不再去关心线程的具体使用问题ØNSOperation/NSOperationQueue 面向对象的线程技术ØGCD —— Grand Central Dispatch原创 2017-09-12 20:14:38 · 487 阅读 · 0 评论 -
IOS异步获取数据并刷新界面dispatch_async的使用方法
在ios的开发和学习中多线程编程是必须会遇到并用到的。在java中以及Android开发中,大量的后台运行,异步消息队列,基本都是运用了多线程来实现。 同样在,在ios移动开发和Android基本是很类似的一种模型。 但是很多时候,在应用开发中,我们会发现本身并没有自己编码去处理一些并发的事件,去开辟新的子线程等等。 (虽然一般的调用sdk发起一个网络请求,系统都是会默认给原创 2017-09-12 20:27:44 · 371 阅读 · 0 评论 -
iOS开发中属性 property 和 synthesize
在Objective-c 2 .0中引入了 property 和 synthesize 为方便存取 1 让大家认识一下 property and synthesize 吧 @property预编译命令的作用是自动声明属性的setter和getter方法 @synthesize也是一种新的编译器功能,表示“创建该属性的访问器”废话少说~~ 下面更精彩哦~~~下面我们来对比原创 2017-09-29 17:00:02 · 2223 阅读 · 0 评论 -
ios-属性引用self.xx与_xx的区别
在iOS开发过程中,我们用@proprety声明一个属性后,在代码中我们可以用self.xx与_xx来获取到这个属性。但是一直有一个疑惑,那就是这两个之间有什么区别呢?最初我一直觉得这两个之间没什么区别的,直到有一次,我发现自己明明对声明的属性进行了赋值,但是在使用_xx引用时发现为nil,这才引起我的注意。所以,今天在这里对这个问题进行统一的一个说明和学习。1 @property 与 @sy...原创 2017-09-29 18:20:28 · 689 阅读 · 0 评论 -
OC中self.a和_a的访问的区别
久了不回顾基础知识,猛然间看到,有时候还真想不起来有的知识,比如声明@property和合成@synthesize的属性与普通的属性有什么本质区别,self.a和_a访问的区别,所以有必要回顾一下。我们先来说说@property和@synthesize@property声明成员变量,会自动帮我们生成该成员变量的getter/setter方法的声明;@synthesize的作用是自动生成成员...原创 2017-09-29 19:32:35 · 2810 阅读 · 0 评论 -
AutoLayout约束
AutoLayout约束图解.png原创 2017-10-18 17:36:13 · 204 阅读 · 0 评论 -
下架apple store上的应用
1用开发者账号登陆到Itunesconnect,点击主页的“Manage Your App” 选项点击你要下架的App程序图标,进入到App信息管理页面,选择右侧的“Rights And Pricing”2进入到编辑页面。在“Avaliabilty Date”处可以选择一个未来的日期3在下方有个选择APP销售地区的地方,把所有销售地区"Unselect All"4最后点击"Save",保存配置,会原创 2017-10-30 17:07:05 · 891 阅读 · 0 评论 -
如何下架自己的 APP(APP Store)
1.首先登陆你的 iTunes Connect https://itunesconnect.apple.com2.选择 3点击自己想要下架的应用4.点击价格与销售范围5.在销售范围里就可以下架了这是最近上线了一款应用,由于有一些原因,就像下线,于是总结了下.如果你的页面是英文版的.对应下就可以了作者:ruwin_God链接:http://www.jianshu原创 2017-10-30 17:13:31 · 14474 阅读 · 2 评论 -
app monkey压力测试流程
一、 什么是MonkeyMonkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。Monkey测试是一种为了测试软件的稳定性、健壮性的快速有效的方法。二、 环境搭建 1:下载sdk(类比java jdk) 文件较大官网下载sdk下载 2:配置环境变量 在pa原创 2017-10-24 19:28:36 · 597 阅读 · 0 评论 -
arc
提示:本文中所说的"实例变量"即是"成员变量","局部变量"即是"本地变量"一、简介ARC是自iOS 5之后增加的新特性,完全消除了手动管理内存的烦琐,编译器会自动在适当的地方插入适当的retain、release、autorelease语句。你不再需要担心内存管理,因为编译器为你处理了一切注意:ARC 是编译器特性,而不是 iOS 运行时特性(除了weak指针原创 2017-10-25 15:23:54 · 284 阅读 · 0 评论 -
静态库与动态库的区别以及framework的使用
首先来看什么是库,库(Library)说白了就是一段编译好的二进制代码,加上头文件就可以供别人使用。什么时候我们会用到库呢?一种情况是某些代码需要给别人使用,但是我们不希望别人看到源码,就需要以库的形式进行封装,只暴露出头文件。另外一种情况是,对于某些不会进行大的改动的代码,我们想减少编译的时间,就可以把它打包成库,因为库是已经编译好的二进制了,编译的时候只需要 Link 一下,不会浪费编原创 2017-09-21 10:36:53 · 2757 阅读 · 0 评论 -
Storyboard进行界面跳转及传值
目录:一、使用Storyboard进行跳转1)纯Storybard界面操作2)使用代码进行跳转二、Storyboard界面传值1)使用prepareForSegue方法进行跳转:2)Storyboard Id跳转 一、使用Storyboard进行跳转1)纯Storyboard界面操作我们在Storyboard上放置一个原创 2017-11-17 15:43:43 · 480 阅读 · 0 评论 -
ios的编码
原创 2017-10-26 20:09:12 · 232 阅读 · 0 评论 -
iOS代码块Block
block.pngiOS代码块Block概述代码块Block是苹果在iOS4开始引入的对C语言的扩展,用来实现匿名函数的特性,Block是一种特殊的数据类型,其可以正常定义变量、作为参数、作为返回值,特殊地,Block还可以保存一段代码,在需要的时候调用,目前Block已经广泛应用于iOS开发中,常用于GCD、动画、排序及各类回调注: Block的声明与赋值只是保存了一原创 2017-11-28 15:56:18 · 2289 阅读 · 0 评论 -
代码块
block代码块,允许开发者在两个对象之间将任意语句当作数据进行传递block,使用了与一个函数相同的机制,可以像声明一个函数一样来声明一个block ,可以像定义一个函数的方法一样来定义一个block,也可以将block当作一个对象来调用。 代码块的声明: 返回值类型(^代码块名字)(参数列表) 代码块实现: 代码块名字=^(参数列表){代码块的行为主体};//声明一个代码块原创 2017-11-28 19:42:22 · 232 阅读 · 0 评论