- 博客(107)
- 资源 (6)
- 问答 (1)
- 收藏
- 关注
转载 提高程序运行效率的10个简单方法
对于每一个程序员来说,程序的运行效率都是一个值得重视,并为之付出努力的问题。但是程序性能的优化也是一门复杂的学问,需要很多的知识,然而并不是每个程序员都具备这样的知识,而且论述如何优化程序提高程序运行效率的书籍也很少。但是这并不等于我们可以忽略程序的运行效率,下面就介绍一下本人积累的一些简单实用的提高程序运行效率的方法,希望对大家有所帮助。注:以C/C++程序为例一、尽量减
2014-08-01 19:10:14 6317
原创 [Mac OS X 内核]_[创建一个鼠标事件传递给内核驱动]
当我们通过监听HID设备的数据,获取到HID设备上模拟鼠标事件的数据,我们要把这些数据传递到系统内核中去,直接模拟鼠标的操作。怎么把数据传递到内核中去呢?下面直接用源码说明//创建一个鼠标点击事件 //CGEventSourceStateID 默认选0x0 CGEventSourceRef sourceRef = CGEventSourceCreate(kCGEventSour
2017-10-28 10:45:01 817
原创 内存管理——Xcode升级到8.0之后内存管理需要注意的事项
今天回顾复习一下内存管理的知识点,发现了一个不可思议的问题,拿出来和大家一起分享。在之前我们总是认为是这样的:引用计数的工作原理:1.当我们创建(alloc)一个新对象A的时候,它的引用计数从零变为 1;2.当有一个指针指向这个对象A,也就是某对象想通过引用保留(retain)该对象A时,引用计数加 1;3.当某个指针/对象不再指向这个对象A,也就是释放(release)该引用
2017-07-16 11:31:12 904
原创 Swift3.0之String转换成基本数据类型 Int CGFloat Double
Swift的字符串类String ,没有像OC NSString类,有属性可以直接转换为基本数据类型,所以就总结了常用的String类转换为基本数据类型的方法直接上码:import UIKitclass BaseTypeConvertClass: NSObject { open class func StringToFloat(str:String)
2017-07-13 21:10:53 6051 3
原创 Swift图片浏览之SDPhotoBrowser的使用
场景:我们在使用app的时候,特别是显示多张图片的时候,都会点击图片并进行浏览,比如QQ、微信,好友发表的动态,我们都会点击进去查看原图。现在很多app都支持图片浏览功能,这样更加方便用户体验,那么我们在项目开发过程中,怎么对图片点击进行预览,下面介绍一下在swift项目开发中使用SDPhotoBrowser进行图片浏览。SDPhotoBrowser地址:https://github.com/
2017-07-13 20:58:58 3720
原创 swift集成支付宝支付遇到问题的汇总
下面汇总一下我在集成支付宝支付遇到的问题1.设置要订单信息需要的参数,生成订单信息,无法调起支付宝问题分析:a.确保你的支付宝开发者平台已经开通支付的功能;不然加签可能不通过b.确保订单信息的每一个必要项不能为空;c.确保订单参数拼接的顺序一致,最好和服务器那边对接好,最好是生成订单信息给服务器来完成2.调起支付宝,弹出无法获取订单信息问题分析:a.订单的价
2017-06-29 17:34:18 1117
原创 Swift3.0之hidesBottomBarWhenPushed的使用和注意事项
我们有时候在开发iOS的时候,涉及到跳转界面时,需要隐藏tabbar,以便我们重新定义新的。OC版本的://1.设置self.tabBarController.tabBar.hidden=YES; self.tabBarController.tabBar.hidden=YES; //2.如果在push跳转时需要隐藏tabBar,设置self.hidesBot
2017-06-28 22:45:40 2199
原创 JSONExport在项目开发中的应用,可支持Java Android iOS Swift等
JSONExport工具可以直接把json数据转换成对象,大大节省了开发者的开发时间,而不必要对类对象成员属性一个个的定义,同时也减少了错误定义成员变量的问题。JSONExport可以直接生成Java Android iOS Swift等类对象的文件,我们只要修改一下类对象的名称就可以了。下面针对Mac OS平台上JSONExport的使用说明JSONExport地址:https://
2017-06-22 22:28:16 1294
原创 MBProgressHUD在oc、swift项目中的封装使用
MBProgressHUD在实际项目中用的非常多,不过要处理提示框的地方又要写很多的代码,下面分享一个别人写的方法直接移植到项目中就可以用了,OC和swift项目中都通用,使用之前把MBProgressHUD库移植到项目中MBProgressHUD地址:https://github.com/jdg/MBProgressHUDUIViewController+HUD.h
2017-06-22 21:47:58 1725
原创 swift3.0之UIImagePickerController的使用和注意事项
在oc中使用UIImagePickerController只要设置好代理、写代理方法就行了,但是在swift中编译没有什么问题,但是运行的时候会报错,选择一张图片,会显示库是私有的,不能访问,遇到这样的问题很好的解决办法就是在info.plist文件中添加Privacy - Photo Library Usage Description 和 Privacy - Camera Usage Des
2017-06-22 21:31:39 3736
原创 Swift之UIColor 扩展
通常UIColor自带的一些方法在实际项目开发中不能满足我们的需求,所以把一些常用到的方法在这里进行一个归类import Foundationimport UIKitextension UIColor { //用数值初始化颜色,便于生成设计图上标明的十六进制颜色 如valueRGB = 0x23c4f6 convenience init(valueRGB: UI
2017-06-16 21:48:32 877
原创 Swift之自定义UICollectionViewCell
自定义UICollectionViewCell和自定义UITableViewCell差不多,不过自定义UICollectionViewCell更像自定义UIView,具体代码如下import UIKitclass ClassifyCollectionViewCell: UICollectionViewCell { var imageView: UIImageView!
2017-06-16 21:38:29 6290
原创 Swift之自定义UITableViewCell
主要是在重写父类的init(style:UITableViewCellStyle, reuseIdentifier:String?)中添加要实现的部分,比如下面在cell中添加几个Label,获取改变原有cell中subViews子控件的位置坐标、字体颜色、背景颜色等等。import UIKitclass HomeTableViewCell: UITableViewCell {
2017-06-16 21:30:06 585
原创 Swift之自定义UIView
Swift自定义View和OC自定义View的原理都是一样的,重写init()方法或initWithFrame()方法,下面简单说说如何自定义swift UIView主要是重写init(frame:CGRect)方法,其中required init?(coder aDecoder: NSCoder) 是必不可少的,swift语言强制要求的//// LoginImgFieldView.s
2017-06-16 21:24:08 13276
原创 CocoaAsyncSocket之socket长连接
首先说一下iOS后台运行机制,可能很多iOS的同学不了解iPhone的后台运行机制,下面给大家简单了来说一下转:http://blog.csdn.net/enuola/article/details/9148631一、IOS的“伪后台”程序首先,先了解一下iOS 中所谓的「后台进程」到底是怎么回事吧?在iOS 中所谓的「后台驻留」并不是指「执行中的程序」,而是「
2017-06-05 09:19:38 1823
原创 CocoaAsyncSocket
CocoaAsyncSocket 详细介绍CocoaAsyncSocket支持tcp和udp。其中:AsyncSocket类是支持TCP的AsyncUdpSocket是支持UDP的AsyncSocket是封装了CFSocket和CFSteam的TCP/IP socket网络库。它提供了异步操作,本地cocoa类的基于delegate的完整支持。主要有以下特性:
2017-06-05 08:55:35 604
转载 如何成为博客专家
CSDN给予某些用户“博客专家”的称谓并颁发勋章, 是对获得较大影响力的技术类博客的一种肯定。所以要成为“博客专家”必须满足两个条件,一获得较大影响力,二博客内容应以技术类为主。 较大影响力的判断依据主要包括,博客原创文章量、原创文章的流量、博客订阅量、关注此博客的用户量等。只有这些指标表现优异时,我们才会安排专人对其内容进行审核,如果认为其所写的原创技术文章质量较高,我们才会将其评为“博
2017-04-06 17:52:12 498 1
转载 iOS设计模式——MVVM模式
MVVM的发展历程:MVC-->MVP-->MVVM。MVVM是Model-View-ViewModel的简写。微软的WPF带来了新的技术体验,如Silverlight、音频、视频、3D、动画……,这导致了软件UI层更加细节化、可定制化。同时,在技术层面,WPF也带来了 诸如Binding、Dependency Property、Routed Events、Command、DataTe
2017-04-06 16:51:17 775
原创 iOS第三方支付——银联支付
1.概述银联手机支付控件(以下简称支付控件),主要为合作商户的手机客户端提供安全、便捷的支付服务。用户通过在支付控件中输入银行卡卡号、手机号、密码(借记卡和预付卡)或者CVN2、有效期(信用卡)、验证码等要素完成支付。(温馨提示: 对于使用中国银联老版支付控件商户可以跳过其他章节,直接对照本文档第5部分对工程进行改造) 2.支付流程介绍通过支付控件进行交易的流程如下图: 流
2017-04-06 16:13:56 2843
转载 [iOS]_[系统]_[几种获取联系人通讯录的方法]
本文实例为大家分享了iOS获取通讯录的4种方式,供大家参考,具体内容如下使用场景一些App通过手机号码来推荐好友,如 微博、支付宝首先客户端会获取通讯录中的所有手机号然后将这些手机号提交到App服务器中,服务器会查找每个手机号对应的App账号如QQ号码返回到客户端,然后客户端根据服务器返回的账号列表来推荐好友。获取联系人方式方案一:AddressBookUI
2017-02-18 17:27:58 798
原创 [android]_[初级]_[android studio中使用单元测试]
在Android Studio中可以进行单元测试刚刚开始用Android Studio做单元测试,发现网上有很多的文章指导你应该在“build.gradle” 文件里面添加几行代码从而允许单元测试,并且告诉你应该在项目依赖中添加Android测试库。其实Android Studio在创建项目的时候已经帮我们把单元测试的环境配置好了,本身就支持Android单元测试,我们肯定就不需要在build
2016-02-22 15:43:22 688
原创 [android]_[内存泄露分析和排查]
1 内存泄漏的排查方法Dalvik Debug Monitor Server (DDMS) 是 ADT插件的一部分,其中有两项功能可用于内存检查 :·heap 查看堆的分配情况·allocation tracker跟踪内存分配情况DDMS 这两项功能有助于找到内存泄漏的操作行为。Eclipse Memory Analysis Tools (MAT) 是一个分
2016-02-18 15:49:52 751
原创 [android]_[初级]_[通过会话thread_id查询群发信息(文本彩信)]
思路:查询文本彩信 首先查询threads表,获取会话的thread_id,recipient_ids。 1.通过thread_id可以查询pdu表,获取part的mid,通过mid来查询part表获取文本彩信的内容text. 2.recipient_ids 群发会话的话,会存在多个canonical_addresses表的_id,其中_id在recipient_ids列中是用空格分隔的。
2016-01-28 20:01:09 1029
原创 [android]_[初级][插入短信数据到短信数据库]
短信数据库的存储路径:/data/data/com.android.providers.telephony/databases/mmssms.db
2016-01-28 19:53:51 1053 1
原创 [Windows]_[初级]_[监听指定目录文件夹中文件的变化]
主要是用函数ReadDirectoryChangesW来进行监听文件的变化。函数原型:BOOL WINAPI ReadDirectoryChangesW( _In_ HANDLE hDirectory, _Out_ LPVOID lpBuffer, _I
2016-01-28 19:48:44 4561
原创 Windows和Mac下adb找不到设备的解决方法
要使电脑和手机进行连接,我们一般都需要 1.给电脑安装手机USB驱动,为了检查驱动安装成功之后,检查电脑和手机连接状况。2.下载adb检查工具。当我们输入命令 adb devices进行验证的时候,扫描不到任务设备。出现这种情况主要是因为adb内建有一个知名的厂商ID列表,对于列表内的设备,adb可以直接连接,而不在列表中的设备,则不好意思,它会直接返回,这也就是为什么android设
2016-01-13 17:41:55 5728
原创 [Object C]_[初级]_[Object C之内存管理]
在项目中,经常会程序崩溃,内存增大等问题,影响程序的性能,出现这个问题的原因就是内存泄露,创建的对象没有释放,或者是对象被多次释放。所以内存管理对于整个项目来说是非常重要的。
2015-12-31 20:17:42 534
原创 [Cocoa]_[初级]_[Cocoa设计模式总结]
单例模式优点:封装共享资源;提高唯一一个访问接口;控制实例化,阻止创建类的多个实例。缺点:由于单例不会被释放,需要在应用终止的时候,释放占用的资源。实例:+(MySelf*) myself{ static MySelf *singleton =nil; @synchronized(self) { if(singleton == nil) { singleton
2015-12-30 21:13:31 596
原创 [Cocoa]_[初级]_[NSNotificationCenter 消息中心在程序中的具体应用]
1.NSNotificationCenter是整个消息操作的首脑 。它允许你注册观察者对象,发布通知到通告板上,和注销观察对象。2.消息中心机制流程图:主要是对观察者对象进行注册,注册之后NSNotificationCenter对所有观察者对象进行统一管理,如果观察者要执行方法,发送一条消息给消息中心,消息中心监听到这个消息之后,就会把你感兴趣的方法显示到通告板上,以方便用户预览。
2015-12-23 19:28:49 850
原创 [Object C]_[初级]_[NSUserDefaults在项目中的应用]
NSUserDefaults 每个应用程序附带了一组默认的工厂(数据存储包)。当用户编辑他或她缺省值,用户设置的值和工厂默认值存储在用户的默认数据库。因此,每次应用程序启动时,你需要提醒工厂的缺省值。这个操作称为默认注册。注册后,您将使用用户默认值对象来确定用户想要的应用程序的行为。这个过程称为阅读和使用默认值。数据从数据库用户的默认值将自动读取的文件系统。您还将创建一个首选项面板
2015-12-04 14:39:09 798
原创 [Object C]_[初级]_[创建文件路径时,已存在同名目录和文件名的问题的解决方案]
场景:导出数据到本地,以文件夹格式和文件名格式导出,数据中存在同名问题,为了防止不覆盖,要创建一个新的文件夹或者文件名用以区分同名的不同数据。下面编写一个小例子进行说明:DirAndFile.h#import @interface DirAndFile : NSObject+(NSString*) getDirPathNewName:(NSString*)path;+(NSS
2015-11-28 14:45:46 3519
原创 [Cocoa]_[初级]_[文件拖放操作]
场景:支持所有类别的文件拖放(从外部直接拖文件到程序中)实例:DragDropView.h#import @protocol DragDropViewDelegate;@interface DragDropView : NSView//设置代理@property(assign) IBOutlet id delegate;@end@protocol DragDro
2015-11-22 17:43:05 2131
转载 提高软件开发效率的八个要素
根据我的经验,我总结了软件开发中最重要、最容易出现偏差的八个要素,希望大家从中得到启发,把软件工程应用到开发中去,全面提高软件质量,把中国软件搞上去,超过印度。1) 做好调研和需求分析,必要的话建立原型,保证软件特征是客户所需要的,尽量避免软件成型后客户才提出修改。2) 保证需求分析和概要设计的时间和质量,记住这一阶段的错误,在以后的阶段要付出10-10
2015-11-08 13:28:08 5484
原创 [Object C]_[初级]_[文件修改创建时间和修改时间]
场景:用一些软件把手机上面的文件,如图片、音乐、视频、电子书等文件导出到电脑上,文件的创建时间和修改时间是当前系统的时间,与手机不能保持一致。为了实现与手机文件一致,手动修改导出的文件的创建时间和修改时间。具体示例:void ModifyFileCreateTimeAndModifyTime(){ NSFileManager *fm =[NSFileManager de
2015-11-04 17:33:25 2592
原创 [Object C]_[初级]_[两个数组共有元素的提取,删除,数组的合并]
场景:应用于数据的合并,具体例子如联系人的分组,在设置多个分组的时候存在新建和删除部分分组,我们就要把新建的部分分组和删除的部分分组找出来。具体例子如下:-(void) doFindSameObjectFromArrays{ NSMutableArray *array1 =[NSMutableArray new];//假设array1为一个联系人的分组groupIds N
2015-10-29 20:03:42 698
原创 [Xcode]_[解决Xcode设置断点,调试窗口出现反汇编代码的异常情况]
场景:XCode进行调试程序的时候,调试窗口不出现源代码窗口,而是出现反汇编代码,这样不利于我们调试。调试异常如下如示:解决方案:在Xcode菜单栏上找到“Product”---->“Debug Workflow”, 把"Show Disassembly When debugging"菜单项前面的勾选去掉就可以了。如下所示:设置成功:运行结果:
2015-10-29 19:17:54 2289 1
原创 [Object C]_[初级]_[NSArray排序]
场景:根据需求让数据内的元素有序排列。下面是具体实例说明。ArrayObject.h#import @interface Person : NSObject{ NSString *_name; NSInteger _age;}@property (readwrite, copy) NSString *_name;@property (read
2015-10-18 21:48:42 499
原创 [Cocoa]_[初级]_[使用NSOutlineView创建多根显示]
场景:主要应用于界面布局中可隐藏数据和展开显示数据。具体例子如下:1.编写代码OutlineViewData.h#import @interface OutlineViewData : NSObject{ NSString *name; NSString *number; //表格状态标识 BOOL isHasChild;
2015-09-28 19:38:22 3736
原创 [svn常用命令使用总结]
1.提交项目代码代svnsvn import svn://路径(目录或文件的全路径) [本地目录全路径] -m firstcommit --username 用户名2.把svn项目代码checkout 到本地文件夹svn checkout svn://路径(目录或文件的全路径) [本地目录全路径] --username 用户名 3.导出 svn expo
2015-09-20 23:05:56 654
Mac电脑如何重新扫描总线设备
2017-10-31
TA创建的收藏夹 TA关注的收藏夹
TA关注的人