- 博客(35)
- 收藏
- 关注
原创 iOS UITextField限制字数
//进行文字的限制- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{ if (string.length == 0) { return YES; } NSI
2016-04-19 14:51:36 418
原创 FMDB基本使用
#import "PersonDBTool.h"#import @implementation PersonDBToolstatic FMDatabase *_dataBase;+ (void)initialize{ //1.创建数据,并且打开/连接到沙盒中的数据库 NSString *documentPath = [NSSearchPathForDirectori
2016-04-11 08:13:18 278
原创 ios 添加到购物车的动画
func addProductsAnimation(iamgeView : UIImageView) { //创建一个一模一样的涂层 let frame = iamgeView.convertRect(iamgeView.bounds, toView: self.view) let transitionLayer = CALayer()
2016-04-04 20:29:50 530
转载 IOS-- UIView中的坐标转换
// 将像素point由point所在视图转换到目标视图view中,返回在目标视图view中的像素值- (CGPoint)convertPoint:(CGPoint)point toView:(UIView *)view;// 将像素point从view中转换到当前视图中,返回在当前视图中的像素值- (CGPoint)convertPoint:(CGPoint)point from
2016-04-04 19:28:43 254
原创 collectionview实现无限轮播
实现很简单:核心思想:建立三组相同cell,初始化的时候滑动到第1组的0,当滑动过程中超出第一组的范围,立刻无动画效果滑动到第一组对应的item上核心代码:利用scrollview的代理方法- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{ //根据偏移量 计算出index 处于中间范围不操作 其
2016-03-23 23:17:19 639
原创 ios开发集成支付宝
1.官方的集成文档:https://doc.open.alipay.com/doc2/detail.htm?spm=a219a.7386797.0.0.Esp29o&treeId=59&articleId=103563&docType=12.看到的一个写的比较好的文档:http://www.tuicool.com/articles/fiIBZjR3.简单流程: (1)
2016-03-23 17:31:22 325
原创 sqlite系列(2)使用FMDB保存数据swift
1.创建一个数据库的工具类import UIKitimport FMDBclass XBDataManger: NSObject { //单例 static let shareInstance : XBDataManger = XBDataManger() //创建一个队列(线程安全的队列) var queue : FMDatabaseQueue?
2016-03-23 11:51:50 462
原创 sqlite保存数据模型
今天保存数据用到了sqlite,简单的使用了下外部接口:public@interface XBSQLiteTools : NSObject//保存数据+ (void)saveDataWithContact:(XBContact *)contact;//取数据+ (NSArray *)contactList;//根据sql取得数据+ (NSArray *)contactL
2016-03-22 23:43:36 805
原创 swift网络工具类
import UIKitimport AFNetworkingimport SVProgressHUDenum RequestType :Int{ case GET = 0 case POST = 1}class XBNetworkTool: AFHTTPSessionManager { static let sharedNetworkTool = X
2016-03-21 17:24:35 479
原创 GCD2:常用用法
1.一次性执行(单例)+(SingletonExample *)sharedInstance{ static SingletonExample *sharedSingleton = nil; static dispatch_once_t onceToken; dispatch_once(&onceToken,^(void) { sharedSingleton = [[
2016-03-17 19:26:28 415
原创 插入排序c递归实现和非递归实现
1.特点 :在部分有序的情况下,插入排序效率很高,和选择排序 不一样的是,排序的效率受输入序列的影响很大 平均时间复杂度O(n^2) 最好情况下 O(n) 最坏情况下O(^2)2.代码实现 迭代的方式实现 void insertSort(int a[],int N){ if(a==NULL)return ; in
2016-03-16 15:20:10 644
原创 选择排序c语言实现
1.选择排序思想 :扫描N次 ,从左到右去扫描,每次找出其中的最大(降序)和最小(升序)的元素,然后去交换位置 2.特点: 不会根据输入序列而影响排序的交换和比较的次数 所以 时间复杂度O(N^2) 最好情况下 O(N^2) 最坏情况下 O(N^2) 3.举例 随机序列 4,2,3,5,1
2016-03-16 14:54:44 327
转载 设置UIImage的渲染模式:UIImage.renderingMode
设置UIImage的渲染模式:UIImage.renderingMode着色(Tint Color)是iOS7界面中的一个.设置UIImage的渲染模式:UIImage.renderingMode重大改变,你可以设置一个UIImage在渲染时是否使用当前视图的Tint Color。UIImage新增了一个只读属性:renderingMode,对应的还有一个新增方法:imageWithR
2016-03-14 15:54:55 218
原创 textView表情代码相关
@objc private func setEmotion(noti : NSNotification) { let emotion = noti.userInfo!["emotion"] as! XBEmotion if let png = emotion.png { //保存之前的内容
2016-03-11 17:13:04 274
原创 同一labeltext设置不同的属性
NSMutableAttributedString *attributeString = [[NSMutableAttributedString alloc] initWithString:title]; [attributeString addAttribute:NSFontAttributeName value:[UIFont systemFontOfSiz
2016-03-09 11:53:26 322
原创 ios时间获取刚刚几分钟几秒钟几小时之前
今天开发中遇到刚刚几分钟几秒钟几小时,写了下函数- (NSString *)getTime:(NSString *)timeSource{ //Tue Mar 08 13:14:45 +0800 2016 服务端获取时间的格式是这样的 NSDateFormatter *form = [[NSDateFormatter alloc] init]; //设置时区
2016-03-08 16:07:47 2098
原创 底部视图跟随键盘移动(通知)
***重要的是时间点 两个通知很容易造成时间点不对 UIKeyboardWillChangeFrameNotification UIKeyboardDidChangeFrameNotification一个是改变完成 另一个是即将改变添加通知 NSNotificationCenter.defaultCenter().addObser
2016-03-07 23:22:23 278
转载 UIViewAnimationOption的枚举
UIViewAnimationOptionLayoutSubviews //提交动画的时候布局子控件,表示子控件将和父控件一同动画。UIViewAnimationOptionAllowUserInteraction //动画时允许用户交流,比如触摸UIViewAnimationOptionBeginFromCurrentState //从当前状态开始动画UIViewAnimationO
2016-02-29 18:27:55 231
原创 oc运行时获取类属性列表
- (NSArray *)propertys{ unsigned int count = 0; //获取属性的列表 objc_property_t *propertyList = class_copyPropertyList([self class], &count); NSMutableArray *propertyArray = [NSMutableArra
2016-02-28 15:33:22 2735
原创 Podfile
use_frameworks!platform :ios, '8.0'pod 'AFNetworking'pod 'SDWebImage'pod 'SVProgressHUD'pod 'SnapKit'pod 'FMDB'
2016-02-25 18:53:02 274
原创 swift之闭包循环引用问题及解决方式
闭包循环引用问题:1.问题代码代码1:viewcontroll class ViewController: UIViewController { var client: HTTPClient? override func viewDidLoad() { super.viewDidLoad()
2016-02-24 18:29:14 472
原创 ios9不能使用http解决方法
在Info.plist中添加NSAppTransportSecurity类型Dictionary2.在NSAppTransportSecurity下添加NSAllowsArbitraryLoads类型Boolean,值设为YES
2016-01-18 22:48:06 414
原创 GCD1
1.gcd简介GCD是苹果公司为多核的并行运算提出的解决方案GCD会自动利用更多的CPU内核(比如双全称是Grand Central Dispatch纯C语言的,提供了非常多强大的函数核、四核)GCD会自动管理线程的生命周期(创建线程、调度任务、销毁线程)程序员只需要告诉GCD想要执行什么任务,不需要编写任何线程管理代码2.gcd 核心:将任务添加到队列
2016-01-16 22:23:25 505
原创 ios多线程
1.线程相关概念进程是指在系统中正在运行的一个应用程序进程和进程之间时相互独立的:在内存当中都有属于自己的一段内存空间线程:一个进程可以有多个线程组成(1个进程至少要有一个线程(主线程)多线程的作用:解决程序阻塞问题 提升程序到执行效率单核cpu的情况下,多线程时快速的在多个线程之间切换如果线程非常多的话,cpu在多个线程之间
2016-01-14 22:39:10 224
原创 objective-c基础之可变参数列表va_list
#import @interface VarArgs : NSObject- (void)test:(NSString *)name,...;- (int)test2:(int)num1,...;@end@implementation VarArgs- (void)test:(NSString *)name, ...{ va_list arglist;//定义一个v
2015-11-20 11:04:19 466
原创 objective-c基础之block
block基本使用#import int main00() {// //block的使用// void (^print)(void) = ^(void)// {// NSLog(@"我正在学习objective C :block");// };// print();// //无返回值无参数// // doubl
2015-11-19 22:04:52 278
原创 LRU缓存
class LRUCache{ struct CacheNode { int key; int value; CacheNode(int k,int v):key(k),value(v){} }; public: LRUCache(int capacity) { this-
2015-09-24 16:55:27 149
原创 IOS学习笔记1
1.基本上所有的关键字都@开头,其他少数几个关键字没有2.字符串@开头 @“hello” 是OC的字符串 “hello” C语言的字符串3.nil == NULL 4.BOOL 类型 (YES/NO)5. #import 用途; {1.#include类似 2.防止头文件的重复包含 类似 #pragma once
2015-09-16 21:42:49 237
原创 大小端字节序
1.大端和小端问题大小端字节序与硬件有关 ,intel x86 都是小端字节序小端字节序:低地址存高字节大端字节序:低地址存低字节总结:大端是 按照正常我们书写的顺序来存储的 小端是 按照我们书写顺序相反的代码实现:#include int main(){ int a = 0x123456
2015-09-10 10:39:49 249
原创 条件变量+互斥锁解决生产者消费者模型
代码实现:int num = 0;pthread_mutex_t mutex ;pthread_cond_t condition;void *producer(void *arg){pthread_mutex_lock(&mutex);num ++ ;if(num == 1) pthread_cond_signal(&condition);
2015-09-08 09:30:36 341
原创 memcpy实现
void memcpy(void *dst,const void* src,size_t count){assert((!dst) && (!src));const char* psrc = (const char*)src;char* pdst = (char*)dst;int i=0;for(i=0;i
2015-09-07 09:25:29 299
原创 数据结构与算法
归并排序的时间复杂度:将数列每一步都分开需要logN;每一步都是一个归并小数列的过程O(N),所以一共为N*LOG N空间复杂度是O(N)void merge(int a[],int start,int mid,int end,int temp[]){int i = start, j = mid + 1, k = 0;while (i {if
2015-09-06 21:16:25 225
原创 linux c 正则库
linux c正则库标准的C和C++都不支持正则表达式,但是有一些函数库提供这一功能,其中最著名的当数Philip Hazel的Perl-Compatible Regular Expression库,许多Linux发行版本都带有这个函数库3个重要的APIrecomp()函数对其进行编译,转换为regex_t 结构int regcomp(regex_t
2015-09-04 13:34:08 404
原创 linux守护进程daemon
linux守护进程:linux很多的系统服务都是守护进程,例如本地的系统服务crond计划任务 , 网络服务:web httpd如何将一个进程转换为守护进程呢?一.概念: 进程:每一个进程都有父进程(祖先进程是INIT进程 ,PID 1)相关系统调用 fork();子进程终止,父进程会得到通知,并且获取子进程的退出状态:相关:wait(
2015-08-31 12:05:14 264
原创 准备准备..
不知不觉间,开学就大四了,准备找工作了,打算总结下学习的东西前天,参加了阿里的笔试,答的不好不坏,好的是,感觉附加题答的还不错,坏的是,概率题答的特别不好,感觉时间很紧,来不及思考,其实还是自己的数学基础不好,最心痛的是忙中出错,自己明明会的,没答对,一个java的问题,还有就是二分查找的选择题没答对,诶...呵呵,不管怎样,还得开心的生活不是! 今天,我突然想到了一个问题:就
2015-08-25 22:58:32 232
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人