1、

-(void)timetick

{

_d = 0;

NSTimer *newtime =[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(printfdate:) userInfo:@"byL" repeats:YES];

}

-(void)printfdate:(NSTimer*)time1

{

NSLog(@"%d,%@",_d++,time1.userInfo);

}

[newtime invalidate];

[[NSRunLoop currentRunLoop]run];

//初始化观察

[_phone addObserver:self forKeyPath:@"price" options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld context:nil];

//观察到变化控制

-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSString *,id> *)change context:(void *)context

{

NSNumber *num = [change objectForKey:@"new"];

NSLog(@"%@",num);

}

//发送信息

[[NSNotificationCenter defaultCenter]postNotificationName:@"pricechange" object:self userInfo:nil];

//接受信息初始化

[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(salephone) name:@"pricechange" object:nil];

//接受到信息做控制

-(void)salephone

//数组

NSArray *DATA_A =@[类,类,类,类,类];

//设置过滤条件

NSPredicate *newpre = [NSPredicate predicateWithFormat:@"age > 29"];

//过滤后保存的数组

NSArray *newarray = [DATA_A filteredArrayUsingPredicate:newpre];

@“name BEGINSWITH 'x' ”

@“name ENDSWITH 'x' ”

@“name CONTAINS 'x' ”

@“age > 29 || age < 20”

@“name like ‘?d*’ ”

2、

sql

====================================================================

创建:

打开: 数据库指针、保存地址

sqlite3_open([path UTF8String], &new_sql)

————————————————————————————————————————

创建: 数据库指针、创建指令、错误指令

(

NSString *command = @"CREATE TABLE IF NOT EXISTS UserTable (username TEXT primary key,password TEXT,age TEXT)";

)

sqlite3_exec(new_sql, [command UTF8String], NULL, NULL, &new_error)

————————————————————————————————————————

关闭: 数据库指针

sqlite3_close(new_sql);

====================================================================

插入:

打开:

————————————————————————————————————————

插入指令:

(

NSString *op = @"INSERT INTO UserTable(username,password,age) VALUES (?,?,?)";

)

准备: 数据库指针、插入指令、句柄

sqlite3_prepare(new_sql, [op UTF8String], -1, &new_stmt, NULL);

绑定: 句柄、位置、数据

sqlite3_bind_text(new_stmt, 1, [name UTF8String], -1, NULL);

下一步: 句柄

sqlite3_step(new_stmt);

结束: 句柄

sqlite3_finalize(new_stmt);

————————————————————————————————————————

关闭:

====================================================================

删除:

打开:

————————————————————————————————————————

删除指令:

(

NSString *op = @"DELETE FROM userTable WHERE userName = ?";

)

准备: 数据库指针、删除指令、句柄

sqlite3_prepare(new_sql, [op UTF8String], -1, &new_stmt, NULL);

绑定: 句柄、位置、数据

sqlite3_bind_text(new_stmt, 1, [name UTF8String], -1, NULL);

下一步: 句柄

sqlite3_step(new_stmt);

结束: 句柄

sqlite3_finalize(new_stmt);

————————————————————————————————————————

关闭:

====================================================================

选择:

打开:

————————————————————————————————————————

选择指令:

(

(1)NSString *op = @"SELECT username,password,age From UserTable where username = ?";

(2)NSString *op = @"SELECT username,password,age From UserTable";

)

准备: 数据库指针、选择指令、句柄

sqlite3_prepare(new_sql, [op UTF8String], -1, &new_stmt, NULL);

绑定: 句柄、位置、数据

(1)sqlite3_bind_text(new_stmt, 1, [selet_name UTF8String], -1, NULL);

下一步: 句柄

sqlite3_step(new_stmt);

遍历:

while (result == SQLITE_ROW)

{

char *c_name = (char *)sqlite3_column_text(new_stmt, 0);

char *c_password = (char *)sqlite3_column_text(new_stmt, 1);

char *c_age = (char *)sqlite3_column_text(new_stmt, 2);

NSString *s_name = [NSString stringWithCString:c_name encoding:NSUTF8StringEncoding];

NSString *s_password = [NSString stringWithCString:c_password encoding:NSUTF8StringEncoding];

NSString *s_age = [NSString stringWithCString:c_age encoding:NSUTF8StringEncoding];

NSLog(@"%@,%@,%@",s_name,s_password,s_age);

result = sqlite3_step(new_stmt);

//NSLog(@"%d",new_stmt);

}

结束: 句柄

sqlite3_finalize(new_stmt);

————————————————————————————————————————

关闭:

====================================================================

插入变体:

更新

@"UPDATE UserTable SET password = ? where username = ?"

选择(2)变体:

排序

@“SELECT * FROM userTable ORDER BY age ASC(DESC)”

3、

@"dogs.@sum.weight"

@"dogs.@avg.weight"

@"dogs.@min.weight"

@"dogs.@max.weight"

4、

int gNumb=0;

全局变量通常用小写g来提示。

重写,父类有声明,不必再声明

[p1 isKindOfClass:[Person class]];

[p1 isMemberOfClass:[Person class]];

[p1 respondsToSelector:@selector(test)];

可变数组 copy 赋值给不可变数组。

-(NSString *)description

{

return [NSString stringWithFormat:@"%@,%lu",_name,_price];

}

==========================================================================

//编码

NSData *new_data = [s_text dataUsingEncoding:NSUTF8StringEncoding];

//解码

NSString *new_string = [[NSString alloc]initWithData:new_data encoding:NSUTF8StringEncoding];

==========================================================================

//沙盒路径

NSHomeDirectory()

//工程目录

[NSBundle mainBundle]

==========================================================================

//弄个文件管理

NSFileManager *new_File = [NSFileManager defaultManager];

//创建文件夹   path要追加文件夹名,不要后缀

[new_File createDirectoryAtPath:path withIntermediateDirectories:YES attributes:nil error:&new_error]

//创建文件   path在之前文件夹下追加“xxx.xxx”    data要编码

[new_File createFileAtPath:new_path contents:new_data attributes:nil]

//读取文件的信息 返回字典

[new_File attributesOfItemAtPath:new_path error:&new_error]

//读取单个字典的关键词

[new_dic objectForKey:@"NSFileSize"]

==========================================================================

//文件读取

NSData *newData = [fileManager contentsAtPath:filePath];

[[NSString alloc]initWithData:newData encoding:NSUTF8StringEncoding];

or

[[NSString alloc]initWithContentsOfFile:new_path encoding:NSUTF8StringEncoding error:&new_error];

//文件移动(剪切、重命名),要加上文件名和后缀”xxx.xx”

[new_File moveItemAtPath:new_path toPath:ob_add error:&new_error]

//文件复制   也要注意有文件名和后缀“xxx.xx”

[new_File copyItemAtPath:new_path toPath:ob_add_2 error:&new_error]

//文件删除   也要注意有文件名和后缀“xxx.xx”

先判断有无文件

[new_File fileExistsAtPath:ob_add_2]

删除

[new_File removeItemAtPath:ob_add_2 error:&new_error]

==========================================================================

//写入

/设置为写入模式

NSFileHandle *new_handle = [NSFileHandle fileHandleForWritingAtPath:path];

/先转码

NSString *new_string = @"hello,hello,hello,世界";

NSData *new_data = [new_string dataUsingEncoding:NSUTF8StringEncoding];

/再写入

[new_handle writeData:new_data];

//追加

/先找到最后的

[new_handle seekToEndOfFile];

/写入转码后的数据

[new_handle writeData:new_data_2];

//覆盖

/先找到偏移位

[new_handle seekToFileOffset:3];

/写入转码后的数据

[new_handle writeData:new_data_3];

//关闭操作

[new_handle closeFile];

//读取

/设置为读取模式

new_handle = [NSFileHandle fileHandleForReadingAtPath:path];

/读取所有data

NSData *read_data = [new_handle readDataToEndOfFile];

/转成字符串

NSString *read_string = [[NSString alloc]initWithData:read_data encoding:NSUTF8StringEncoding];

/设置为读取模式,否则有问题

new_handle = [NSFileHandle fileHandleForReadingAtPath:path];

/读取前几个数据

read_data = [new_handle readDataOfLength:10];

/转成字符串

ead_string = [[NSString alloc]initWithData:read_data encoding:NSUTF8StringEncoding];

//关闭操作

[new_handle closeFile];

5、

协议

@required

@optional

nonatomic

copy assign

==================================================

.h签协议

<NSCopying>

.m设置要复制的值

- (id)copyWithZone:(nullable NSZone *)zone

{

NSLog(@"复制对象调用了!");

Person *person = [[self class] allocWithZone:zone];

person.name = [_name mutableCopy];

person.age = _age;

person.bookArray = [_bookArray mutableCopy];

return person;

}

调用

Person *person2 = [person1 copy];

==================================================

.h签协议

<NSCoding>

.m设置要复制的值

- (void)encodeWithCoder:(NSCoder *)aCoder

{

[aCoder encodeObject:_name forKey:NAME];

[aCoder encodeInteger:_age forKey:AGE];

[aCoder encodeObject:_hobby forKey:HOBBY];

}

- (nullable instancetype)initWithCoder:(NSCoder *)aDecoder

{

self = [super init];

if (self)

{

self.name = [aDecoder decodeObjectForKey:NAME];

self.age = [aDecoder decodeIntegerForKey:AGE];

self.hobby = [aDecoder decodeObjectForKey:HOBBY];

}

return self;

}

调用

//地址

NSString *path = [NSHomeDirectory() stringByAppendingPathComponent:@"Desktop/di8zhangzuoue.txt"];

//归档

[NSKeyedArchiver archiveRootObject:atext toFile:path]

//读取

[NSKeyedUnarchiver unarchiveObjectWithFile:path];

==================================================

单例 共享信息

.m

static OneT *newone = nil;

+(instancetype)shalldata

{

if (newone == nil)

{

newone = [[OneT alloc]init];

newone.data_zone = [NSMutableArray array];

}

return newone;

}

调用:

OneT *one = [OneT shalldata];

OneT *two = [OneT shalldata];

==================================================

NSArray *data = [NSArray arrayWithObjects:@"zhang3",@"li4", nil];

NSString *path = [NSHomeDirectory() stringByAppendingPathComponent:@"ceshi83.txt"];

BOOL status = [NSKeyedArchiver archiveRootObject:data toFile:path];

NSLog(@"%@",status?@"成功":@"失败");

NSArray *r_data = [NSKeyedUnarchiver unarchiveObjectWithFile:path];

NSLog(@"%@",r_data);

6、

instancetype:返回与初始化类相同的类型。

-(instancetype)initWith…

{

self=[super init];

if(self)

{

}

return self;

}

-(class_A *)initwithone:(int)a other:(int)b

{

self=[super init];

if(self)

{

[self seta:a b:b ] ;

}

return self;

}

+(instancetype)robotWithName:(NSString*)r_name andage:(int)r_age

{

#if 0

return [[self alloc]initWithName:(NSString*)r_name andage:(int)r_age];

#else

Robot *new_R = [[Robot alloc]initWithName:r_name andage:r_age];

return new_R;

#endif

}

@private 私有:只有类定义内部可访问

@protected 保护:只有类本身和子类的定义里可访问

@public 公有:程序的任何位置都可访问

/** xxx */

#progame MARK xxx

[self performSelector:@selector(delaylog:) withObject:@"3秒" afterDelay:2];

[[NSRunLoop currentRunLoop]run];

7、

SET

//初始化

NSSet *set = [[NSSet alloc]initWithObjects:@“_1”,@“_2”,@“_3”,@“_4”,@“_3”, nil];

//可变初始化

NSMutableSet *mSet = [NSMutableSet set];

//可变添加对象

[mSet addObject:numobject];

//建个数组

NSArray *array = [NSArray arrayWithObjects:@“_3”,@“_4”,@“_5”, nil];

//取数组的对象初始化

NSSet *newSet = [NSSet setWithArray:array];

//又把set的对象给数组,自动消除重复

NSArray *newArray = [newSet allObjects];

//打印

NSLog(@"%ld",[newSet count]);

//任意取! 但不保证随机!

NSLog(@"%@",[set anyObject]);

//是否等价

[set isEqualToSet:newSet]

//是否包含

[newSet isSubsetOfSet:set]

ENUM

//将set的值给枚举

NSEnumerator *enumtor = [set objectEnumerator];

//将枚举里的对象一一打印

for (NSObject* obj in enumtor)

{

NSLog(@"-->%@",obj);

}

8、

日期时间

//美国的时间

NSDate *date = [[NSDate alloc]init];

//时区

NSTimeZone *myZone = [NSTimeZone systemTimeZone];

//算时差 加上时差

NSInteger interValTimer = [myZone secondsFromGMTForDate:date];

NSDate *localDate = [date dateByAddingTimeInterval:interValTimer];

NSLog(@"%@",localDate);

//明天

NSDate *date2 = [NSDate dateWithTimeIntervalSinceNow:24*60*60];

//昨天

NSDate *date2 = [NSDate dateWithTimeIntervalSinceNow:-ADAY];

NSLog(@"date2 = %@",date2);

//1970年

NSDate *date2 = [NSDate dateWithTimeIntervalSince1970:0];

NSLog(@"%@",date2);

//参考日期2001年

NSDate *date3 = [NSDate dateWithTimeIntervalSinceReferenceDate:0];

NSLog(@"%@",date3);

//nsdate -> nsstring 类型转换

NSDate *date1 = [NSDate date];

1.

NSString *date1str = date1.description; //美国的时间

2

NSDateFormatter *dateFormat1 = [[NSDateFormatter alloc]init];

2.1

[dateFormat1 setDateFormat:@"yyyy年MM月dd日 EEEE HH mm ss zz"];

2.2

[dateFormat1 setDateStyle:NSDateFormatterShortStyle];

[dateFormat1 setTimeStyle:NSDateFormatterMediumStyle];

NSString *datestr2 = [dateFormat1 stringFromDate:date1];

NSLog(@"datestr2 = %@",datestr2);

//获取所有时区的名字

NSArray *timeZoneNames =  [NSTimeZone knownTimeZoneNames];

//新建一个时区

NSTimeZone *newZone = [NSTimeZone timeZoneWithName:@"Pacific/Fiji"];

//新建一个时间格式

NSDateFormatter *dateFormat2 = [[NSDateFormatter alloc]init];

//设置该时区

[dateFormat2 setTimeZone:newZone];

//设置时间格式

[dateFormat2 setDateFormat:@"yyyy年MM月dd日 EEEE HH:mm:ss zz"];

//打印

NSString *dateString =  [dateFormat2 stringFromDate:[NSDate date]];

NSLog(@"dateString = %@",dateString);

//字符串转date

NSString *dateStr4 = @"2016年07月27日 星期三 20:16:10 GMT+12";

NSDate *date4 = [dateFormat2 dateFromString:dateStr4];

NSLog(@"%@",date4);

NSRange newrange = NSMakeRange(1,5);

NSValue *newvalue = [NSValue valueWithRange:newrange];

NSLog(@"%@",newvalue);

NSArray *newarray = [NSArray arrayWithObjects:newvalue, nil];

NSLog(@"%@",newarray);

NSRange newrange2 = [newvalue rangeValue];

NSLog(@"%lu,%lu",newrange2.location,newrange2.length);

//封装自定义的结构体

struct MyPoint

{

int x;

int y;

};

struct MyPoint mypoint;

mypoint.x = 10;

mypoint.y = 100;

NSValue *val2 = [NSValue value:&mypoint withObjCType:@encode(struct MyPoint)];

NSLog(@"%@",val2);

struct MyPoint mypoint2;

[val2 getValue:&mypoint2];

NSLog(@"mypoint2.x = %d,mypoint2.y = %d",mypoint2.x,mypoint2.y);

9、

@interface class_A:NSObject

@end

@implementation class_A

@end

@property int x;

@synthesize x;

[MyA setNumb:5]; 即使实例变量是小写,这个set后也要大写

n=[MyA numb];

[A B]  等价 A.B

[self 该.m文件的方法],找不到再去父类找

与文件.h.m同名

@interface class_A:NSObject

@end

@interface class_B:class_A

@ens

继承里,class_B里的方法的可以用

[self A的方法]

[self A的变量]

需要某文件的某些方法,可以用

@class xxx.h

如果xxx.h的某些方法访问不了,如init,还是要

#import xxx.h

重复包含的,其中一个.h可以用@class xxx(不用写.h),对应.m要#import xxx.h

同名方法优先使用class_B的方法

同名的方法,会自动判断[A set_value:(int)x]的类,如判断出A

id x;

x=任意变量、class类

@try

{

}

@catch

{

}

@finally

{

}

还有的@throw

10、

字符串:

字符串的创建

对象方法:

[[NSString alloc]init];

[[NSString alloc]initWithString:string];

[[NSString alloc]initWithFormat:@"%@",string1];

类方法:

[NSString stringWithString:string];

[NSString stringWithFormat:@"%@",string2];

字符串格式化拼接

[NSString stringWithFormat:@"%@%@",string3,string4];

字符串比较

[string3 isEqualToString:string4];

[string3 caseInsensitiveCompare:string4];

[string3 compare:string4]

字符串长度

[string length];

string.length;

字符串大小写变化

[string uppercaseString];

[string lowercaseString];

[string capitalizedString];

字符串追加

[string4 stringByAppendingString:string3];

字符串查找

[string rangeOfString:@"world"];

NSNotFound

[string hasPrefix:@“www”];

[string hasSuffix:@“com”];

字符串截取

[string substringFromIndex:2];

[string substringToIndex:5];

[string substringWithRange:range];

字符串跟基本数据类型转换

[NSString stringWithFormat:@"%d",a];

[NSString stringWithFormat:@"%f",b];

[NSString stringWithFormat:@"%c",c];

[strnum1 intValue];

[strnum2 floatValue];

const char *cc = [strchar UTF8String];

字符串取个元素

[newstring characterAtIndex:3]

字符串是否包含

[mString containsString:@"hello"];

可变字符串的创建

[[NSMutableString alloc]initWithString:string];

[[NSMutableString alloc]initWithFormat:@"%@",string];

[NSMutableString stringWithString:string];

[NSMutableString stringWithFormat:@"%@",string];

可变字符串的替换

[mString replaceCharactersInRange:NSMakeRange(2,2) withString:@"xxx"];

可变字符串的插入

[mString insertString:@"aaa" atIndex:1];

可变字符串的删除

[mString deleteCharactersInRange:NSMakeRange(1, 3)];

可变字符串的追加

[S_1 appendString:@"QAZ"];

[S_1 appendFormat:@"%@",S_1];

11、

字典的创建

NSDictionary *dic = [[NSDictionary alloc]init];

//dic = @{key:value,...};

dic = @{

@"name":@"xiaoming",

@"age":@"18",

@"sex":@"男",

@"name1":@"xiaoming"

};

对象方法:

//dic2 = @{value:key,...};

NSDictionary *dic2 = [[NSDictionary alloc]initWithObjectsAndKeys:@"xiaohong",@"name",@"20",@"age",@"男",@"sex",@"12",@"20",@"aaa",@"bbb", nil];

NSDictionary *dic3 = [[NSDictionary alloc]initWithDictionary:dic2];

类方法:

NSDictionary *dic4 = [NSDictionary dictionaryWithDictionary:dic3];

字典的长度

字典根据key获取value

[dic objectForKey:@"age"]

dic[@"age"]

字典取出所有的key

NSArray *keyArray = [dic allKeys];

字典取出所有的value

NSArray *valueArray = [dic allValues];

可变字典的创建

NSMutableDictionary *mDic1 = [NSMutableDictionary dictionary];

类方法:

NSMutableDictionary *mDic = [[NSMutableDictionary alloc]initWithObjectsAndKeys:@"xiaoming",@"name",@"19",@"age",@"男",@"sex", nil];

可变字典添加元素

[mDic setObject:@"80kg" forKey:@"weight"];

可变字典删除元素

[mDic removeObjectForKey:@"age"];

[mDic removeObjectsForKeys:array];

可变字典删除所有元素

[mDic removeAllObjects];

可变字典遍历

for (NSString *key in mDic)

{

NSLog(@"%@",mDic[key]);

}

存储

NSString *path = @"/Users/etcxm/test.plist";

[dic writeToFile:path atomically:YES];

NSArray  *A_data_R = [NSArray array];

A_data_R = [NSArray arrayWithContentsOfFile:S_add];

12、

数组的创建

NSArray *array1 = [[NSArray alloc]init];

array1 = @[@"here",@"is",@"etcxm"];

对象方法:

NSArray *array6 = [[NSArray alloc]initWithObjects:array1,array5, nil];

NSArray *array2 = [[NSArray alloc]initWithObjects:@"here",@"is",@"china", nil];

NSArray *array3 = [[NSArray alloc]initWithArray:array1];

类方法:

NSArray *array4 = [NSArray arrayWithObject:@"hello"];

NSArray *array5 = [NSArray arrayWithObjects:@"here",@"is",@"china", nil];

NSArray *array6 = [NSArray arrayWithArray:array1];

数组取下标元素

array5[2];

[array5 objectAtIndex:2];

数组的长度

array5.count

[array5 count]

数组是否包含某个元素

[array10 containsObject:@"hello”];

数组通过元素获取下标

[array10 indexOfObject:@"1123”];

NSNotFound

数组连接成字符串,字符串分割成数组

NSString *string = [array1 componentsJoinedByString:@" "];

NSArray *array2 = [string componentsSeparatedByString:@"i"];

数组访问最后一个元素

[array1 lastObject];

[array1 firstObject];

数组遍历

for (NSString *str in array1)

{

NSLog(@"->%@",str);

}

数组追加元素

NSArray *array3 = [array1 arrayByAddingObject:@"hello"];

NSArray *array4 = [array1 arrayByAddingObject:array3];

NSArray *array5 = [array1 arrayByAddingObjectsFromArray:array3];

可变数组的创建

NSMutableArray *mArray = [[NSMutableArray alloc]initWithObjects:@"hello",@"world",@"china", nil];

可变数组添加元素

[mArray addObject:@"American"];

NSArray *array = [[NSArray alloc]initWithObjects:@"hi",@"hei", nil];

[mArray addObjectsFromArray:array];

可变数组删除元素

[mArray removeAllObjects];

[mArray3 removeObject:@"here"];

[mArray3 removeObjectAtIndex:3];

[mArray3 removeLastObject];

[mArray3 removeObjectsInArray:arraytest];

[mArray3 removeObjectsAtIndexes:set1];

[mArray3 removeObject:@"here" inRange:NSMakeRange(0, 3)];

[mArray3 removeObjectsInRange:NSMakeRange(1, 4)];

可变数组交换位置

[mArray3 exchangeObjectAtIndex:0 withObjectAtIndex:3];

可变数组替换

[mArray3 replaceObjectAtIndex:0 withObject:@"objxxx"];

可变数组插入

[mArray3 insertObject:@"iiiii" atIndex:1];

可变数组遍历

int i=0;

for (NSString *str in mArray)

{

NSLog(@"%@",str);

NSLog(@"%d",i++);

}

iOS:以前笔记,未整理版。太多了,先放着吧。。。。。。。的更多相关文章

  1. iOS学习笔记-精华整理

    iOS学习笔记总结整理 一.内存管理情况 1- autorelease,当用户的代码在持续运行时,自动释放池是不会被销毁的,这段时间内用户可以安全地使用自动释放的对象.当用户的代码运行告一段 落,开始 ...

  2. iOS学习笔记总结整理

    来源:http://mobile.51cto.com/iphone-386851_all.htm 学习IOS开发这对于一个初学者来说,是一件非常挠头的事情.其实学习IOS开发无外乎平时的积累与总结.下 ...

  3. iOS 相关职位要求整理版

    在拉勾上找了20家,BOSS直聘找了10家感兴趣的在招聘 iOS 程序员的公司,把职位要求整理了一下. 初创公司一般要求1年以上开发经验,成长型或者成熟型公司一般要求最低2年以上开发经验.这里针对的是 ...

  4. Bootstrap学习笔记(未整理)

    强调class 这些class通过颜色来表示强调.也可以应用于链接,当鼠标盘旋于链接上时,其颜色会变深,就像默认的链接样式. <p class="text-muted"> ...

  5. vue笔记未整理

    全局组件 局部组件 子组件传值到父组件 父子组件传值 watch跟计算属性差不多,都会有缓存,计算属性优先 计算属性get set 对象 数组 对象 数组 不复用 改变数组 直接修改数组,页面没变化 ...

  6. iOS 实用博客整理(连载版)

    iOS 实用博客整理(连载版) 本博客为本人觉得不错的博客的暂存地,并不是本人所写. 1.iOS开发 如何适配iOS10? 2.UIWebView和WKWebView的比较和选择 3. 如何快速的开发 ...

  7. OD调试学习笔记7—去除未注册版软件的使用次数限制

    OD调试学习笔记7—去除未注册版软件的使用次数限制 本节使用的软件链接 (想自己试验下的可以下载) 一:破解的思路 仔细观察一个程序,我们会发现,无论在怎么加密,无论加密哪里,这个程序加密的目的就是需 ...

  8. OD调试6—使未注册版软件的功能得以实现

    OD调试6—使未注册版软件的功能得以实现 本节使用的软件下载链接 (想动手试验的朋友可以下载来试试) 继续开始我OD调试教程的学习笔记. 本次试验对真正的程序进行逆向.(之前的都是为破解而专门设计的小 ...

  9. iOS回顾笔记( 02 ) -- 由九宫格布局引发的一系列“惨案”

    html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,bi ...

随机推荐

  1. java字符乱码

    在java中处理字符时,经常会发生乱码,而主要出现的地方在读取文本文件时发生,或者是写入到文件中,在其他地方打开乱码. 如下例子: BufferedReader br = null; try { br ...

  2. Could not create SSL connection through proxy serve-svn

    RA layer request failedsvn: Unable to connect to a repository at URL xxxxxx 最后:Could not create SSL ...

  3. System.Guid ToString五中格式

    参考:https://msdn.microsoft.com/en-us/library/97af8hh4.aspx 测试代码: using System; using System.Collectio ...

  4. MementoPattern(备忘录模式)

    /** * 备忘录模式 * @author TMAC-J * 用于存储bean的状态 */ public class MementoPattern { public class Memento{ pr ...

  5. iOS开源项目周报1222

    由OpenDigg 出品的iOS开源项目周报第二期来啦.我们的iOS开源周报集合了OpenDigg一周来新收录的优质的iOS开发方面的开源项目,方便iOS开发人员便捷的找到自己需要的项目工具等. io ...

  6. git和pycharm管理代码

    首先明白三个概念,服务器代码库,本地代码库,和正在coding的项目. coding完毕后,先通过commit提交到本地代码库,然后通过push再提交server的代码库    git步骤 git c ...

  7. 如何区别数据库删除语句drop与delete与truncate?

    1.delete:删除数据表中的行(可以删除某一行,也可以在不删除数据表的情况下删除所有行) 删除某一行:delete from 数据表名称 where 列名称=值: 删除所有行:delete*fro ...

  8. myrocks复制中断问题排查

    背景 mysql可以支持多种不同的存储引擎,innodb由于其高效的读写性能,并且支持事务特性,使得它成为mysql存储引擎的代名词,使用非常广泛.随着SSD逐渐普及,硬件存储成本越来越高,面向写优化 ...

  9. linux之查看系统命令

    cpu信息 1.查看逻辑cpu核数 # cat /proc/cpuinfo| grep "processor"| wc -l 2.查看物理cpu个数 # cat /proc/cpu ...

  10. μCos-ii学习笔记1_概述

    一.μCos-ii _概述 网上关于μCosii的文章多不胜数,本人学习的过程中也参考了很多人的理解和想法,看的是卢有亮老师的<嵌入式实时操作系统-μC/OS原理与实践>(第2版),同时也 ...