Dart基本语法

Dart基本语法 本篇是针对iOS开发者写Dart基础语法总结,主要通过对比OC和Swift来讲解Dart的基础语法,一些普通语法不再讲解 1.重要概念 在学习Dart的时候,请牢记下面一些事实和概念: 所有能够使用变量引用的都是对象, 每个对象都是一个类的实例。在Dart中甚至连数字、方法和...

2019-08-22 23:13:40

阅读数 4

评论数 0

iOS组件化——源码与二进制的平滑切换

背景 刚加入新的公司,接触到新公司的代码以后,心中是一篇翻江倒海,不是因为项目代码有多优秀,多牛逼,而是因为这是一个7年的老项目,期间经历过不知多少个程序员的手,项目简直是面目全非,各种重复的第三方库,代码耦合严重,不同时期的代码风格及开发模式完全不一样,造成项目过大,编译花费很多时间。现在的同...

2018-07-21 18:07:36

阅读数 686

评论数 0

swift Codable的使用及简单封装

swift在4.0之前,一直没有一套数据解析的方法。现在4.0后,终于有了Codable可以直接将json转成对象,有望取代OC的KVC机制。 先来看看Codable public typealias Codable = Decodable & Encodable ...

2018-01-08 17:10:26

阅读数 6654

评论数 2

Swift泛型在协议中的使用

protocol TestProtocol { associatedtype TestElement func run(_ param: TestElement) } class TestObject: TestProtocol { typealias TestEleme...

2017-09-06 14:47:15

阅读数 597

评论数 0

Swift通过协议实现AOP

什么是AOP AOP是OOP的延续,是(Aspect Oriented Programming)的缩写,意思是面向切面编程,是目前软件开发中的一个热点。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。   。  ...

2017-08-25 15:17:12

阅读数 1736

评论数 0

Swift中performSelector返回值的用法

最近使用swift,翻译OC的代码时,发现performSelector的返回值与OC中的用法相差很大。在OC中返回的是ID类型,而swift中返回的是 Unmanaged! 类型,见下图。 在以前OC中,使用performSelector,直接接受返回值,然后转成需要的类型进行操作就可...

2017-08-09 15:30:02

阅读数 2835

评论数 0

今天开始用swift写服务器(三)

今天将会带来一个有关登录注册的demo,并且继续在上篇的基础上开发。通过注册登录功能,来讲讲数据库连接工具的封装使用和初步了解redis的连接工具。

2017-05-28 10:22:38

阅读数 1677

评论数 0

今天开始用swift写服务器(二)

上篇已经初步讲解了怎么使用perfect开启一个服务,本篇主要讲使用prefect如何从数据库中查询数据,并以JSON格式通过接口给客户端。下面的例子以一个APP端列表为例,数据库使用的是MySQL,运行环境MacOS,实现了分页加载。(客户端视觉比较烂,主要为了实现功能) 首先给大家看一...

2017-05-16 21:47:27

阅读数 2293

评论数 0

使用Swift Package Manager管理项目

今天来讲讲swift的代码资源库管理工具——Swift Package Manager,下面简称SPM。并对上一篇今天开始写swift服务器(一)做一些关于项目管理上的纠正。上篇讲到,因为SPM管理,如果source文件中发生变动,会造成无法正常更新或添加库或框架的问题,故使用workspace管...

2017-04-19 15:45:54

阅读数 4669

评论数 0

今天开始用swift写服务器(一)

用swift写服务器的已经不是什么新鲜事了,这几年的发展,也是swift在服务端的表现越来越成熟,目前比较流行服务端框架主要有Vapor、Perfect、Kitura和Zewo,他们各有长短,本人这次主要是使用Perfect来写的,因为Perfect的功能比较完善,在GitHub上具有1W+的星,...

2017-04-13 18:48:53

阅读数 8130

评论数 4

利用函数式编程和链式编程封装富文本

现在APP的开发中,UI为了是页面更加漂亮,文字更加饱满,经常会出现使用到富文本的场景。在实际开发中,富文本(NSAttributedString)在写代码时非常麻烦。针对不同范围内的文字,添加不同的富文本属性,可能只是短短几行文字,却要通过几十行甚至上百行代码去实现。比如这样 NSMutable...

2017-03-07 23:33:54

阅读数 695

评论数 0

使用AFNetworking3.0实现接口异步并发

近两个月,因为团队后台的动荡,项目新版本的接口非常乱,出现一个tableView需要几个接口来获取数据源的情况。这就需要在几个接口并发请求完后一起回调处理。 因为项目中使用的是AFN的网络框架,所以,这个需求只能基于AFN去实现 一般,我们在使用AFN的网络请求时,是利用 - (NS...

2016-08-24 17:52:10

阅读数 4897

评论数 0

@synchronized 锁用法

synchronized   这个主要是考虑多线程的程序,这个指令可以将{ } 内的代码限制在一个线程执行,如果某个线程没有执行完,其他的线程如果需要执行就得等着。 Objective-C支持程序中的多线程。这就意味着两个线程有可能同时修改同一个对象,这将在程序中导致严重的问题。为了避免...

2016-08-02 15:16:26

阅读数 352

评论数 0

iOS与JaveScript的交互

iOS的webView与H5中的JS交互 在UIWebView中,OC调JS,这里使用JavaScriptCore这个框架; 多余代码就不写了,只写关键代码,在UIWebView的代理方法-(void)webViewDidFinishLoad:(UIWebView *)webView中实现。 -...

2016-07-28 21:22:14

阅读数 345

评论数 0

GCD定时器

在上一篇关于RunLoop的文章中,定时器是需要在开启runloop的线程中才能工作。但是,runloop是一直在循环运行,监听所有的source,timer和selector的。所以,在运行定时器的时候,runloop可能还需要处理其他事件,因此会造成定时器的一些误差,如果我们想让定时器脱离ru...

2016-04-26 09:53:33

阅读数 420

评论数 0

RunLoop浅谈

一、什么是RunLoop 运行循环,基本作用:保持程序的持续运行,处理App中的各种事件(比如触摸事件、定时器事件、selector事件),节省CUP资源,提高程序性能,即该做事时做事,该休息时休息。RunLoop在运行时只能选择一种模式。 二、在Core Foundation中Run...

2016-04-25 17:57:50

阅读数 365

评论数 0

NSException异常处理

当我们的项目上线后,想收集用户的崩溃信息主要有两种方式,一种是借第三方平台的统计,还有一种就是自己统计,上传服务器。这里就讲讲自己使用NSException统计崩溃信息。 在main.m中 @try { @autoreleasepool { retur...

2016-04-25 17:28:32

阅读数 1073

评论数 0

iOS编程思想

一、链式编程 通过点语法,将所有的方法串联,返回所需要的结果,即  结果 = 对象.方法.方法.方法。这样会是代码更加易读,甚至看起来像swift的语法。 Test * test = [[Test alloc] init]; int sum = test.add(10).add(20)...

2016-04-19 13:44:05

阅读数 298

评论数 0

HTML及CSS基础

一、网页的组成,3个部分组成:       1.HTML  网页的具体内容和结构       2.CSS   网页的样式       3.JavaScript  网页交互效果和响应事件 二、结构性标签     1.article:文章主题内容(一篇博客、一篇论坛帖子、一段用户评论、...

2016-04-15 16:34:33

阅读数 318

评论数 0

iOS学习笔记--瀑布流封装

最近学习了瀑布流布局,是用collectionView实现的。首先说说设计思路,用collectionView做出来的瀑布流是固定行数或者列数的。以现在主流固定列数为例,每个item就是固定宽,不固定高,同时每个item之间的间距是固定的,那么每行的Y值计算就需要通过前一行的最短的item来确定。...

2016-04-07 11:01:47

阅读数 334

评论数 0

提示
确定要删除当前文章?
取消 删除