- 博客(105)
- 资源 (11)
- 收藏
- 关注
原创 ios-后台播放音乐
iOS后台播放音乐1、在Info.plist中,添加"Required background modes"键,其值设置如下图所示:App plays audio or streams audio/video using AirPlay2、添加AVFoundation框架,然后再添加如下两段代码添加后台播放代码(AppDelegate): 1 //后
2015-09-30 21:57:22 1782
原创 ios-九宫格布局
UI 布局很重要 现在iOS学习的同学很多 为了帮助大家尽快的入门 博客中会穿插一些简单的例子 虽然例子简单 但是原理很重要 工作中我们是一个工程师 而不是一个码农 做代码的搬运工 在工作中 很多人会感觉很累 因为自己每天都在写一些重复的代码 这里垃圾代码给自己造成了很大的麻烦 加班加点 使项目维护起来很困难 自己跳槽之后 给后面的新同事留下的也是坑 所有我们的
2015-09-30 21:46:04 1733
原创 ios-系统音频播放
虽然代码不长 但是还是分开总结 方便初学者学习 #import "ViewController.h"/** * 首先要导入头文件 * * @param void * * @return */#import @interface ViewController ()@end@implementation ViewController- (void)vie
2015-09-30 21:35:54 372
原创 iOS- 集成百度地图
苹果给我们提供了内置的地图 但是功能不够强大 不能满足我们在项目中的需求 我们用系统的地图库只能实现简单的功能 因此 我们可以使用百度给我们提供的SDK 来开发 百度SDK 中的代码实现是不可见的 因为含有大量的机密但是这不影响我们使用百度地图 使用百度地图有很多坑的 你要想使用百度地图SDK 首先要成为他的开发者 但是有点坑的是 之前申
2015-09-30 21:16:41 1596
原创 ios- 地图路线规划
地图路线的绘制是很复杂的 我们需要包装很多结构体 一层接一层 1.首先我们要给出两个位置 起点和终点 的经纬度 2.给出起点和终点的详细信息 3.包装 起点的节点 和终点的节点 4.进行路线请求 5.发送请求 6.计算 我们可以取出路线 添加大头针和遮盖物来显示我们 起点和终点之间是怎么样连线的要实现系统的代理方法 画线条 #import "ViewC
2015-09-30 20:46:50 3068 3
原创 循环和递归的异同
算法其实还是很有意思的 慢慢研究 收获会很大 简单的来讲解一下 循环与递归的异同 1.相同:递归与循环都是解决 重复操作的机制 2.不同 就算法效率而言,递归算法的实现往往要比迭代算法消耗更多的时间(调用和返回均需要额外的时间)与存储空间(用来保存不同次调用情况下变量的当前值得栈空间)也限制了递归的深度。 每个迭代算法原则上总可以转换成与它等价
2015-09-30 02:00:14 3746
原创 ios-地图-自定义大头针
#import "ViewController.h"//导入#import #import "MyAnnotion.h"@interface ViewController ()//地图显示类@property (nonatomic, weak) MKMapView *mapView;@end@implementation ViewController- (MKMapVi
2015-09-29 22:38:02 2330
原创 长按、捏合、旋转手势的组合应用及ios8新特性
技术更新换代更快 为了给新手学习 这里总结了一些手势 和ios 8 的一些新特性 封装了公共类 可供大家随意使用 便捷我们项目的开发 #import #import @interface Utility : NSObject/** * 获取系统版本 * * @return */+ (CGFloat)systemVersion;/** *
2015-09-29 21:49:37 1320
转载 Xcode 报错
我们使用Xcode 的过程中有可能删除了一些系统的中的文件 我们可以试着 清理模拟器 清理工程 将模拟器删除重建 针对不同的问题有不同办法 这里给出一个简单的解决方案有时候不小心就报了这个错误,在以下步骤中,只有没解决问题的情况下,才继续往下操作: 1.Clean工程 2.按住option键,再次Clean 3.进入Window ->
2015-09-29 18:44:27 373
原创 ios 公共类的合理使用
为了高效率的开发 我们如何提高我们的效率 怎么使我们的团队更好的合作为公司创造最大的价值 我们不光要提高自己的开发效率 也要想着团队中的其他成员 我们开发软件要有封装 的思想 做出来的软件产品易于维护 不至于给其他团队成员带来很大的麻烦 今天给大家介绍一种 方法 提高自己的开发效率 可以使用一些插件之类的 用一些代码块 减少垃圾代码
2015-09-29 13:58:48 1299
原创 ios-地图 大头针的使用
#import "ViewController.h"//1.导入MKMapKit#import @interface ViewController ()- (IBAction)segmentHandle:(UISegmentedControl *)sender;@property (nonatomic, weak)MKMapView *mapView;@end@impleme
2015-09-29 13:20:32 623
原创 UILabel 分类
将常用的Lable的一些方法属性 新增添了一个分类 提供了一些类方法 方便我们的使用 减少了垃圾代码的重复写来写去 #import @interface UIView (Addition)+ (UILabel *)label;+ (UILabel *)labelWithFram:(CGRect)frame;+ (UILabel *)labelWithFram
2015-09-28 20:53:25 782
原创 ios-手势总结-清扫手势
这里介绍清扫手势 并且加上一些转场动画 可供大家参考 //// ViewController.m// 清扫手势//#import "ViewController.h"@interface ViewController (){ int _index;}@property (nonatomic, weak)UIImageView *imageView;
2015-09-28 20:22:42 1349
原创 多线程-经典买票问题
/** 线程加锁会造成系统系能消耗 我们要根据实际的需求合理使用锁,但是不能滥用 * 买票 * * @param name */- (void)buyTicket:(NSString *)name{ while (1) {#if 0 //对象锁 @synchronized(self) { /
2015-09-27 11:49:22 2205
原创 自定义XML
我们不但要知道如何解析XML,还要知道如何自定义XML 下面给出一个简单的例子#import "ViewController.h"#import "DDXML.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad { [super viewDid
2015-09-27 11:44:41 403
原创 GDataXMLNode
XML 解析思路大致相同 大家可以对比一下 方便使用#import "ViewController.h"#import "GDataXMLNode.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad];
2015-09-27 11:41:52 328
原创 KissXML解析
#import "ViewController.h"#import "DDXML.h"#import "User.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; // Do any addition
2015-09-27 11:28:34 485
原创 JSONKit解析
#import "ViewController.h"#import "JSONKit.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after
2015-09-27 11:25:20 447
原创 ios-下载管理类封装
#import @interface HTTPDownloadManager : NSObject/** * 下载完成列表 */@property (nonatomic , strong) NSMutableArray *downloadFinishLists;/** * 正在下载的列表 */@property (nonatomic, strong) NSMutable
2015-09-27 11:21:06 783
原创 ios-高级排序
我们排序一般使用系统提供的或者是我们自定义的排序但是遇到了复杂的排序 就会很麻烦的 这里我们可以采用 一种高级排序的方法 下面给大家介绍一下 很好用 直接上代码#import @interface User : NSObject@property (nonatomic, copy)NSString *name;@property (nonatomic, assign)i
2015-09-26 12:42:38 367
原创 数据库-多线程安全
我们需要使用fdbm 这个三方库如果实现线程安全 我们会选择枷锁的方式但是fdbm 这个库提供了一种多线程安全的方式,但并不是枷锁 这里使用到一个类FMDatabaseQueue使用方法很简单#import "ViewController.h"#import "FMDatabaseQueue.h"@interface ViewController ()@end
2015-09-26 12:33:57 938
原创 ios-数据库-事务
概念事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。事务通常由高级数据库操纵语言或编程语言(如SQL,C++或Java)书写的用户程序的执行所引起,并用形如begin transaction和end transaction语句(或函数调用)来界定。事务由事务开始(begin transaction)和事务结束(end transaction)
2015-09-26 12:27:51 1793
原创 数据库的简单封装
#import @interface QHDatabaseManager : NSObject+ (instancetype)databaseManager;//创建表- (BOOL)insertIntoTableWithObject:(id)object;//查询所有数据- (NSArray *)queryAllUserObjectsFromDatabase;- (NSArr
2015-09-25 22:29:34 542
原创 网络请求保存到本地plist
#import "ViewController.h"#import "NSString+Addition.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; NSString *urlStrin
2015-09-25 22:27:07 659
原创 NSOperation封装- 多任务下载
#import /** 完成回调 */#warning mark - block在主线程中创建 回调就必须用主线程typedef void(^OperationDidFinishBlock)(void);/** 进度回调 */typedef void(^OPerationDidRecieveProgressBlock)(float progress);@inte
2015-09-24 20:15:36 961
原创 GCD的使用方法
在项目开发中 我们用到最多的就是GCD 特总结常用的几点与大家分享 #import "ViewController.h"@interface ViewController (){ /** * 串行队列 */ dispatch_queue_t _mainQueue; /** * 并行队列 */ dis
2015-09-24 16:16:46 1708
原创 ios- 死锁
什么是死锁 ?什么时候会发生死锁?出现死锁我们怎么解决 死锁就是线程之间的相互等待 简单的来说 就是你等我 我等你 线程出现这种情况会导致死锁的放生 举个简单的例子 :#import "GCDViewController.h"@interface GCDViewController (){ /** * 串行队列 */
2015-09-24 14:49:02 975
原创 ios-信号量
代码虽然不常 但是#import "semaphoreController.h"@interface semaphoreController ()@end@implementation semaphoreController- (void)viewDidLoad { [super viewDidLoad]; dis
2015-09-24 14:28:30 1133
原创 ios-锁机制-条件锁的使用
条件锁很简单 这里给大家简单的简介几个例子 条件锁类似于Operation中的依赖关系信号量类似于OperationQueue中的设置的最大并发量#import "LockViewController.h"@interface LockViewController ()@end@implementation LockViewController- (void)viewDidLoad
2015-09-24 13:50:54 1311
原创 MacBook鼠标指针乱窜-不受控制问题的解决方法
MacBook鼠标指针乱窜-不受控制问题的解决方法这是个很头疼的问题,终于解决了用的MacBook Pro最近出现了奇怪的问题。出问题时,鼠标不受控制,屏幕上鼠标指针乱窜,还时不时自动点击,犹如电脑被人远程控制一般。不管是用trackpad还是用外接鼠标,都是同样问题。电脑根本无法使用,让人郁闷至极。前几次出现问题时,关机一段时间后再开机就好了。可是今天出现问题后,无论怎么整,即使
2015-09-24 12:33:23 94533 8
原创 ios- 归档 解档
归档解档是OC 中很重要的知识点 弥补了NSUserDefaults 的不足 可以存储自定义的对象 我们可以存储多个对象 需要一个数组接受即可 #import @interface User : NSObject@property (nonatomic, copy)NSString *name;@property (nonatomic, copy)NSStri
2015-09-24 11:38:47 2420
原创 ios 归档接档
归档和解档是OC 中很重要的一个知识点 介绍了NSUserDefaults 的基本用法,但是它有些不足,不能存储自定义对象 我们可以用归档来弥补NSUsersDefaults 的不足 可以存储自定义对象 也可以存储多个对象 我们只需要将对象放进数组即可 然后用一个数组接收下面给出个例子 注释写的很详细 在NSUserDefaults 基础上的改进
2015-09-24 11:34:13 577
原创 NSUserDefaults 的简单用法-数据存储
NSUserDefaults对象是用来保存,恢复应用程序相关的偏好设置,配置数据等等。轻量级的保存数据 很方便我们的使用 ,我们还需要了解synchronize 同步写入,因为系统默认写入是随机的,如果我们没有同步写入沙盒的话,那么我们有可能取不到我们刚存储进去的值供我们使用NSUserDefaults类提供了一个与默认系统进行交互的编程接口。默认系统允许应用程序自定义它的行为去迎
2015-09-24 10:30:55 814
原创 mrc 单例
mrc单例(单个实例)1.重写系统allocWithZone:防止通过alloc创建一个新的对象。2.重写copy,release,retain,autorelease.[self release];返回void- (void)release{}- (id)copy{ return self;}- (id)autorelase{ return se
2015-09-23 22:38:25 322
原创 网络请求封装2
#import @class HTTPRequest;//请求成功的回调typedef void(^HTTPRequestFinishBlock)(HTTPRequest *request);//请求失败的回调typedef void(^HTTPRequestErrorBlock)(NSError *error);//进度的回调typedef void(^HTT
2015-09-23 22:29:52 355
原创 网络请求的封装
#import "ViewController.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, ty
2015-09-23 22:21:36 302
原创 Quart2D-画图
#import "CustomView.h"@implementation CustomView-(void)setImage:(UIImage *)image{ NSLog(@"setImage"); _image = image; //drawRect是不能够自己手动调用的,会报错,系统不允许直接调用// [self drawRect:self.fram
2015-09-23 10:37:43 552
原创 ASI-demo
#import "ViewController.h"#import "ASIHTTPRequest.h" //GET请求#import "ASINetworkQueue.h" //请求队列#import "ASIFormDataRequest.h" //POST请求#import "ASIDownloadCache.h" //缓存类@interface Vie
2015-09-23 10:32:28 499
原创 postdemo
#import "ViewController.h"@interface ViewController (){ NSURLConnection *_connection; NSMutableData *_data;}@end@implementation ViewController#pragma mark -sendPost2-//使用二进制 (二进制数据)承
2015-09-23 10:26:52 344
原创 iOS-新浪微博开发-26-下拉刷新
在这里使用的是苹果系统原生的下拉刷新控件 用起来很简单 上代码 和大家一起分享 但是苹果没有为我们提供上拉刷新的控件 #import "QHHomeViewController.h"#import "QHDropdownMenu.h"#import "QHTitleMenuTableViewController.h"#import "AFNetworking.h"#
2015-09-20 22:01:21 813
真机调试iOS13.0、iOS13.1.zip
2019-10-10
iOS 11 真机运行镜像
2017-09-21
iOS自定义键盘
2016-11-24
sql server 集群配置
2015-07-13
oracle 11g安装配置
2015-07-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人