- 博客(169)
- 资源 (49)
- 收藏
- 关注
原创 GCD对象及使用
GCD对象及使用一、概述Objective-C语言下的GCD对象都被称为dispatch object对象,且都属于NSObject对象。dispatch object像Cocoa对象一样是引用计数的。因此,如果我们使用ARC,dispatch objects将被保留并自动释放,就像任何其他Objective-C对象一样。当使用MRC时,需要使用dispatch_retain和dispat...
2019-11-27 11:21:29 789
原创 Block底层实现
//步骤一:创建一个控制台应用,在main中添加块的测试代码#import <Foundation/Foundation.h>int main(int argc, const char * argv[]) { void (^testBlock)(void) = ^{ printf("msg log hehe"); }; test...
2019-11-26 11:15:17 641
原创 NSProgress认识
NSProgress是一个用来向用户不断传递某个任务进度的类。NSProgress类内部拥有一个进度报告机制。这使得代码很容易获取工作的进度、设置界面上以呈现进度。为进度条和提示文本提供数据支持,进度条和提示文本会在进度变更时适当地更新。它还允许用户取消或暂停工作。属性:@property int64_t totalUnitCount; 工作总单元数,每个NSProgress对象对应一个...
2019-11-22 10:37:54 2194
原创 C++string获取含有中文字符的字符串长度
c++中的string对象的size()和length(),返回的都是字节个数,如何获取字符个数呢?(尤其是字符串里面包含了中文),如下:#include <iostream>using namespace std;//获取utf-8字符个数(utf-8下,英文字符一个站位一个字节,中文字符一个站位3个字节)static int getUtf8LetterNumber(c...
2019-11-08 09:50:24 9668
原创 设置QWidget及其子类控件背景颜色
QWidget是所有用户界面控件的基类,所以用同样的方法为其子类控件改变背景颜色。Qt中窗口背景的设置,下面介绍三种方法。使用QPalette 使用Style Sheet绘图事件使用Style Sheet要用QSS设置窗口背景,需要小心使用。因为窗口使用QSS设置背景之后,若子部件不使用同样的方式来设置,默认则会继承父窗口的样式。使用QPalette来设置背景色 QWi...
2019-09-26 11:18:24 2831 2
原创 线性表之单链表
//// main.m// LinkedList//#import <Foundation/Foundation.h>typedef int DataType;typedef struct Node{ DataType data; struct Node *next;}Node, *NodePtr;void init(NodePtr ...
2018-08-18 22:41:59 380
原创 线性表之顺序表
里面有个隐患,就是使用了静态数组存放顺序表。实际中,必须用动态数组。 //// main.m// SequrenceList顺序表是由静态数组实现的////#import <Foundation/Foundation.h>#define LISTSIZE 10typedef int ElementType;//用结构体表示一个顺序表struct Sequ...
2018-08-18 22:39:55 283
原创 静态数组与动态数组(都是顺序表)
静态数组与动态数组(都是顺序表)一、定义动态数组是在程序运行时创建的,可以根据用户需要,有效利用存储空间,分配的存储空间在堆上:int *h=new int[10];//可以对h重新赋值静态数组在声明时就已经确定大小的数组,即数组元素的个数固定不变,分配的存储空间在栈上::int h[10];//不可以对h重新赋值二、举例int h[10];int *h = (int*)ma...
2018-08-17 20:43:49 3223
原创 浅谈Objc之AOP编程
AOP编程,就是切片编程,是切入到函数实现(函数代码块实现)的编程。问题场景:当你想在某个已存在函数代码块实现之前或之后,添加另一部分额外功能时,但又不想直接将代码插入(这部分代码相对独立,插进去总觉得和原来代码是逻辑无关的),也不想通过父类统一添加(有可能创建多个父类?);看样子,在编译阶段解决此问题,有些难度;在运行阶段有办法吗?有,就是AOP。既然说的是OC中的AOP,就直说OC中如何实现的...
2018-05-18 10:25:55 349
原创 程序之原子性、可见性、有序性
原子性:即一个操作或者多个操作 要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行。比如数据库操作必须全部完成,或者全部不完成。原子是世界上的最小单位,具有不可分割性。比如 a=0;(a非long和double类型) 这个操作是不可分割的,那么我们说这个操作时原子操作。再比如:a++; 这个操作实际是a = a + 1;是可分割的,所以他不是一个原子操作。非原子操作都会存在线程安全问题,
2017-09-05 18:28:07 1094
原创 Optional小小总结
Optional概念Swift中的Optional作为一种类型,既可以存储一个值,也可以为空(就是swift里的nil);通常在定义变量或常量时,在类型后面加一个?表示它是Optional类型的的变量。
2017-04-12 13:32:05 608
原创 IOS和stock相关结构体演示
struct addrinfo hints, *res, *res0; memset(&hints, 0, sizeof(hints)); hints.ai_family = PF_UNSPEC; hints.ai_socktype = SOCK_STREAM; hints.ai_protocol = IPPROTO_TCP; int gai_error = getaddrinfo([hostString UTF8String], [@"16"
2017-02-12 18:23:34 946
原创 objc_property_t Ivar解析
返回objc_property_t类型的数组,每个objc_property_t元素描述一个属性的信息,这个数组中不会包括超类的属性 objc_property_t * class_copyPropertyList ( Class cls, unsigned int *outCount )
2017-02-09 21:14:00 1043
原创 创建DISPATCH_SOURCE_TYPE_VNODE派发源
如果需要监控文件系统对象的变化,可以设置一个 DISPATCH_SOURCE_TYPE_VNODE 类型的dispatch source,你可以从这个dispatch source中接收文件删除、写入、重命名等通知。你还可以得到文件的特定元数据信息变化通知。在dispatch source正在处理事件时,dispatch source中指定的文件描述符必须保持打开状态。下面例子监控一个文件的文件名变化,并在文件名变化时执行一些操作。由于文件描述符专门为dispatch source打开,dispatch s
2017-02-01 12:36:51 953
原创 创建DISPATCH_SOURCE_TYPE_WRITE派发源
向文件或socket写入数据非常类似于读取数据,配置描述符为写入操作后,创建一个 DISPATCH_SOURCE_TYPE_WRITE 类型的dispatch source,创建好之后,系统会调用事件处理器,让它开始向文件或socket写入数据。当你完成写入后,使用 dispatch_source_cancel 函数取消dispatch source。写入数据也应该配置文件描述符使用非阻塞操作,虽然 dispatch_source_get_data 函数可以查看当前有多少可用写入空间,但这个值只是建议性的
2017-02-01 12:35:49 1047
原创 创建DISPATCH_SOURCE_TYPE_READ派发源
BOOL myProcesFileData(char *buffer, size_t actutalSize, int fd){ NSString *result2 = [[NSString alloc]initWithBytes:buffer length:actutalSize encoding:4]; NSLog(@"%@", result2); //出来后,我想从文件里扔掉已读部分 /* 清空文件 */ ftruncate(fd,0);
2017-01-31 23:17:44 1775
原创 创建DISPATCH_SOURCE_TYPE_TIMER派发源
dispatch_source_t createTimerDispatchSource(uint64 interval, uint64 leeway, dispatch_queue_t queue, dispatch_block_t block)
2017-01-31 22:38:58 1205
原创 使用DISPATCH_SOURCE_TYPE_DATA_ADD派发源
NSLog(@"==========自定义ADD派发源==========="); dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); //1、先创建派发源 dispatch_source_t dispatchSource = dispatch_source_create(DISPATCH_SOURCE_TYPE_DATA_ADD, 0,
2017-01-31 22:33:25 1434
原创 dispatch source理解
dispatch source和runLoop source都是用来监听事件的,你可以创建不同类型的dispatch source对象和runLoop source对象。dispatch source对象在事件产生时,会将事件处理器添加到响应dispatch queue ,稍后出队执行;runLoop source对象一般是NSObject对象,需要先加入到指定线程的runLoop中,利用runLoop这个循环来检测事件是否产生,如果产生则向NSObject对象或其代理发送消息。dispatch sourc
2017-01-31 16:35:13 746
原创 keychain基本知识
一:基本知识keychain在ios中是保存在sqlite数据库中的。这个数据库文件的位置:真机:/private/var/Keychains/keychain-2.db虚拟机:/Users/USER-HOME/Library/Developer/CoreSimulator/Devices/26DCA62C-B516-4DEA-A601-5C2D0EA07710/data/Library/Keychains/keychain-2-debug.db在虚拟机中,这个数据库考出来就不能读了,很奇怪,
2017-01-17 21:47:08 2016
原创 ios归档及存储
要点:1、归档即我们常说的序列化,有归档当然就有反归档,反归档即我们常说的反序列化。iOS对NSObject对象进行归档,前提是该对象实现了NSCoding协议;Foundation中的NSString、NSDictionary、NSArray、NSMutalbeString、NSMutalbeDictionary、NSMutableArray都直接或间接实现了NSCoding协议,所以你可以使用类方法:NSKeyedArchiver archivedDataWithRootObject:将对象归档为N
2017-01-14 09:03:06 1405
原创 Android Studio连接华为手机调试没有输出自己的日志信息
买了一台新的华为手机,连接Android Studio后,发现Android Monitor下面没有输出自己在程序里设置的日志信息,经一番查找,原理需要在真机上如下设置:手机拨号*#*#2846579#*#*,进入projectmenu--后台设置--LOG设置--LOG开关--选中所有选项;然后重启后,LOGCAT生效了
2016-10-09 14:58:40 5500
原创 Android Asynchronous-Http-Client断点续传
Android Asynchronous-Http-Client断点续传
2016-09-30 11:57:00 1526
原创 Android Asynchronous Http Client
一:先到http://loopj.com/android-async-http下载jar包,并导入到工程中二:先简单封装一个网络请求引擎(仅仅处理了无参、有参的GEP、POST常用请求,其他功能参看http://loopj.com/android-async-http自行封装)package com.analysys.asynchttpclientdemotwo.HttpRequestEngine;import com.loopj.android.http.*;
2016-09-28 15:56:42 431
原创 解决Android中WebView跳转到浏览器的问题
//如果不设置WebViewClient,请求会跳转系统浏览器 webView.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { //返回false,意味着请求过程里,不管有多少次的跳转请求(即新的请求地址)
2016-09-24 12:10:45 27696 6
原创 创建一个CocoaPod
大家都知道,CocoaPods的工程源代码都托管在github上,开发者所pod下来的第三方库、源代码或工程,可以放在github上,也可以放在自己的官网上。我在自己的github上创建一个仓库,用来放置pod出来的文件。这里创建了MQL201609191100仓库,如下图:
2016-09-19 15:50:21 841
原创 下载、安装及使用CocoaPods
一、下载安装CocoaPods,注意:CocoaPods的使用,需要在Ruby环境下完成,所以在下载安装前,先配置好环境。1、查看当前ruby版本,以判断系统上是否已安装了ruby环境(Mac OS本身自带Ruby;如果是windows,去下载对应的ruby安装文件)MQLdeiMac:~ MQL$ ruby -vruby 2.0.0p648 (2015-12-16 revisio
2016-09-07 16:47:54 778
原创 Android之Button文本及背景根据状态设置
目的:1、设置控件选中状态的文本颜色2、设置控件非选中状态的文本颜色3、设置控件选中状态的背景颜色4、设置控件非选中状态的背景颜色步骤:在res/values/colors.xml添加如下四种颜色<?xml version="1.0" encoding="utf-8"?><resources> <color name="controlTextSelectedColor">#ffffff</color> <color name="controlTextUnselectedC
2016-09-06 21:52:27 2330
原创 如何让Android TextView内容滚动
android:scrollbars="vertical" android:maxLines="99999" TextView textView = (TextView)findViewById(R.id.contentTextViewId); textView.setMovementMethod(new ScrollingMovementMethod(){});
2016-08-30 18:53:11 5378
转载 IOS启动另外APP
http://blog.csdn.net/wangqiuyun/article/details/8081974http://wiki.mob.com/ios9-对sharesdk的影响(适配ios-9必读)/http://www.cocoachina.com/bbs/read.php?tid=109315说明: 第一个链接地址是介绍被启动的App
2016-07-22 11:45:35 463
原创 Andorid之地理定位权限的在M之前和之后获取表现
package com.analysys.locationdemo.activities;import android.Manifest;import android.content.Context;import android.content.Intent;import android.content.pm.PackageManager;import android.location.Criteria;import android.location.Location;import andr
2016-07-21 18:49:20 2138
原创 java适配器设计模式
/*适配器设计模式:将一个类的接口转换成客户希望的另外一个接口,适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。对修改关闭,对扩展开放。*/public class Test{ public static void main(String[] args){ Test.connect(new BncConnectorPlugsImp()); //如果Te
2016-05-22 22:47:43 468
原创 java代理设计模式
/*代理模式,顾名思义就是委托别人去做事情。在cocoa touch框架中的Delegate,委托人往往是框架中的对象(视图中的控件、tableView等),代理人往往是视图控制器对象。代理人首先得满足一个条件:就是在其头文件中申明它拥有代理资格,具体实现是在其类声明的地方添加如,表示这他拥有代理资格。其次,在其实现文件中定义委托人可以让代理人去代替做的事情。当这个委托人需要办这些
2016-05-19 16:34:43 465
原创 java简单工厂设计模式
/*简单工厂设计模式:使用工厂类的静态方法,根据输入创建不同的对象,返回对象引用*/public class Test{ public static void main(String[] args){ Noshery n = NosheryFactory.chooseNoshery("24"); if (n != null) { n.mytoString()
2016-05-18 15:06:19 384
原创 java策略设计模式
一、策略模式的定义1、定义了一组算法,将每个算法包装起来,并且使它们之间可以互换2、策略模式使得在调用这些算法的时候能够不相互影响,改变不同算法的实现方式不影响其他算法的使用,即策略模式让算法独立于使用它们的客户端而独立变化。二、策略模式体现了两个非常基本的面向对象设计的原则:1、封装变化的概念。2、编程中使用接口,而不是使用对接口的实现 三、策略模式的角色
2016-05-17 09:28:13 428
原创 java模板方法设计模式(Template Method)
模板方法设计模式(Template Method):定义一个算法骨架,而将一些步骤方法(方法没必要一定是抽象的)延迟到子类中实现。该模式使得不同的子类可以不改变一个算法的结构,只重定义该算法的某些特定步骤方法。举个图形例子:public class Test{ public static void main(String[] args) { Shape shape = new
2016-05-16 17:16:05 475 1
EncapsulateWK.zip
2020-07-28
STPingTest.zip
2020-06-27
cppcms_forms.zip
2020-04-04
cppcms_w2p_web.zip
2020-03-23
cppcms_url_mapping.zip
2020-03-23
wav音频的录制-->转成amr
2014-09-06
仿网易自动循环广告,也可手动滑动
2014-08-30
高仿IOS“网易新闻”客户端
2014-03-31
下拉/上拉刷新和表视图末尾自动刷新(2)
2013-12-21
iOS并发编程指南
2013-08-30
SmartSVNKeygen
2013-05-21
下拉/上拉刷新和表视图末尾自动刷新
2013-03-04
斯坦福iPhone_应用开发课程(2010年冬)PPT翻译03_C_ustom+Classes+ED.pdf
2011-07-06
MDMMDMMDMMDMMDM
2010-05-05
DES之symbian下的封装
2010-04-29
TA创建的收藏夹 TA关注的收藏夹
TA关注的人