- 博客(27)
- 资源 (1)
- 收藏
- 关注
原创 Block循环引用的例子
//// main.m// Block循环引用//// Created by 白天钰 on 2017/8/15.// Copyright © 2017年 baitianyu. All rights reserved.//#import typedef void (^blk_t) (void);@interface MyObject : NSObject {
2017-08-15 08:56:02
385
原创 添加圆角的4种方法
//方法一:iOS 9 之后 UIButton设置圆角会触发离屏渲染,UIImageView里PNG图片设置不会,但是如果设置其它阴影效果还是会触发离屏渲染 UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"bird.jpg"]]; imageView.fra
2017-08-15 08:26:30
1419
原创 我也说说runtime的一道经典面试题
iOS程序猿,一定见过下面这道面试题:@implementation Son : Father - (id)init { self = [super init]; if (self) { NSLog(@"%@", NSStringFromClass([self class])); NSLog(@"%@", NSStr
2017-08-09 21:24:02
1092
转载 使用UIGraphics实现多张图片的合并
如何实现一张图片呈现多张图片?你可以把里边的任何一张照片旋转,颠倒……但是原理不变。本代码转载自:http://blog.youkuaiyun.com/qq350116542/article/details/50413239// 1.把多张绘制成一张图片 func drawImages(imageArray: [UIImage]) ->UIImage { // 1.
2017-07-27 11:58:06
1474
原创 swift实现罗马数字转整型
规则:给一串罗马数字,如MDCLXVI,从右往左看,如果前一个数字大于或等于现在的数字,则加前一个数字,小于则减前一个数字!这是最简单的规则,最简单,最简单……可以拿几个罗马数字验证一下,知道这个规则,那么代码就好写了。。。class Roman { func romanToInt(_ s: String) -> Int { le
2017-07-26 19:50:16
406
原创 iOS函数响应式编程应用研究
什么是函数响应式编 函数响应式编程是两个声明式编程的子范式(函数式 +响应式)的组合。(1)函数式编程函数式编程是一种编程范式,实际上是如何编写程序的方法论。具有五个鲜明的特点1)函数是“一等公民”。函数与其他数据类型一样,处于平等地位,可以赋值给其他变量,也可以作为参数传入另一个函数或者作为别的函数的返回值。2)只用“表达式”,不用“语句”。”表达式”(expr
2017-07-05 15:09:20
301
转载 Objective-C 快速排序代码
#import void quicksortInPlace(NSMutableArray *array,NSInteger first, NSInteger last,NSComparator comparator) { if (first >= last)return; id pivot = array[(first + last) /2];
2017-06-23 16:20:37
327
原创 iOS 成员变量和属性的关系
#import //Public: is available an accessible from anywhere//Protected: is available only to subclasses//Private: is available to the class only//Package: is available from that p
2017-06-21 14:57:46
746
转载 iOS项目的目录结构和开发流程
目录结构AppDelegateModelsMacroGeneralHelpersVendorsSectionsResources一个合理的目录结构首先应该是清晰的,让人一眼看上去就能大概了解目录的职责,且容易应对新的变化。AppDelegate这个目录下放的是AppDelegate.h(.m)文件,是整个应用的入口文件,所以单独拿出来。Mod
2017-06-20 15:07:18
203
原创 Objective-C 语言中的3种block
在Objective-C 语言中,一共有3种block:1、_NSConcreteGlobalBlock,全局的静态block,不会访问任何外部变量。2、_NSConcreteStackBlock,保存在栈中的block,当函数返回时会被销毁。3、_NSConcreteMallocBlock,保存在堆中的block,当引用计数为0时会被销毁。
2017-06-20 10:44:51
248
转载 从代码看iOS设计模式之MVP
//: Playground - noun: a place where people can playimport UIKitimport XCPlayground// Modelstruct Person { let firstName:String let lastName:String}
2017-06-19 16:42:02
2216
原创 swift 实现翻转二叉树
难点是对递归的理解,建议自己在纸上画一画,模拟一下程序的运行过程输出,有助于理解递归。/** * Definition for a binary tree node. * public class TreeNode { * public var val: Int * public var left: TreeNode?
2017-06-02 16:14:32
378
原创 正则表达式库
PCRE,全称是Perl Compatible Regular Expressions。从名字我们可以看出PCRE库是与Perl中正则表达式相兼容的一个正则表达式库。PCRE是免费开源的库,它是由C语言实现的,这里是它的官方主页:http://www.pcre.org/,感兴趣的朋友可以在这里了解更多的内容。要得到PCRE库,可以从这里下载:http://sourceforge.net/pro
2016-03-16 16:38:19
707
转载 iOS开发多线程篇---atomic nonatomic区别
nonatomic和atomic对比atomic:线程安全,需要消耗大量的资源nonatomic:非线程安全,适合内存小的移动设备
2016-02-25 17:42:38
548
翻译 Swift设计模式——Factory Pattern
工厂模式是软件设计中应用非常多的一种模式,就不再赘述其原理和目的了!//: Playground - noun: a place where people can playimport UIKitprotocol Shape{ func draw()}class Rectangle: Shape { func draw() {
2015-11-12 15:32:02
447
翻译 Swift设计模式——Command Pattern
Command 模式是一种数据驱动的设计模式,属于行为模式类。通常做法:把请求包含在一个对象中以命令的形式传递给请求者,请求者查找能够处理上述命令的对象,执行相关操作。DEMO说明:1、Order 对应上文提到的命令;2、Stock 对应上文提到的请求;3、buyStock 和 sellStock 实现Order接口,是实际执行command命令的对象类;4、Broker 对应上文提到的请求者,确定具体执行哪个类型的命令; func buy(){ print("
2015-11-12 11:57:55
537
翻译 Swift设计模式——Chain Of Responsibility
简单介绍一下程序的功能:模拟ATM机取款的过程!首先,初始化ATM机中有多少张100的,多少张50的,多少张20的,多少张10的
2015-11-11 18:05:31
457
翻译 iOS UISplitViewController 使用教学
说明:本文由 Tony Pai 翻译自 Bradley Johnson 的博客,原文链接:http://www.raywenderlich.com/94443/uisplitviewcontroller-tutorial-getting-started 由于屏幕大小的缘故,iPad(包括大屏版iPhone)版的app 很少像普通 iPhone app 一样让 table
2015-11-02 15:02:41
6672
原创 彩色石子 问题的C++解法
#include #include bool less(const int m1, const int m2){ return (m1%10) < (m2%10);}std::vector numMove(int pieceNum, std::vector pieceSequence){//vec 用来将颜色放在一个二位数组中, //行数
2014-04-25 12:42:57
761
原创 C++ 分割字符串,可以识别开头的,中间的,末尾的一个或者多个空格
#include #include #include //可以区分一个或者多个空格分割的字符串std::vector splitString(std::string sen){ std::vector vec; while (sen.find(" ") < sen.length()) { if(sen.find(" ") ==
2014-04-24 17:47:41
1183
原创 C++ 字符串逆序输出
#include std::string FirstReverse(std::string str) { std::string newstring; for(auto it = str.cend()-1; it != str.cbegin()-1; --it){ newstring += *it; } return newstring;}
2014-04-24 17:41:36
2759
原创 C++ 四舍五入保留有效数字
#include #include double _f(double t, int n) { double m = pow(10, n); double result = floor(t * m + 0.5) / m; return result;}//保留4位有效数字double f4(double n) { return _f(n, 4);}double f3(dou
2014-04-24 17:39:41
2958
原创 C++ 将字符串转换成date类型的数据
#include /* time_t, struct tm, time, localtime, strftime */#include #include #include char* asctime(conststruct tm *timeptr){ static const char mon_name[][4] = {
2014-04-11 11:26:05
3764
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人