- 博客(57)
- 收藏
- 关注
原创 6、函数
**函数:1. func 函数名(外部参数名1 本地参数名1:参数类型1,外部参数名2 本地参数名2:参数类型2) -> 参数的返回类型{函数体}func greet(outA a:String ,outB b:String)->String{return a+b}1.1 如果提供了外部参数名,函数被调用时,必须使用外部参数名。greet(outA: "a", outB: "b")一般,第一
2016-02-18 14:20:19
435
原创 5控制流
控制流:1.for 循环for index in 1...5{}index的每次遍历开始时被自动赋值的常量,所以不用let关键字.for _ in 1...5{}_能忽略具体的值.2.while while repeat-while 和 do - while 类似.3.switch switch some value to consider { case value 1://
2016-02-18 14:16:30
432
原创 4、集合类型
1.数组的创建:var someInts = [Int]()1.1 创建带默认值的数组var threeDoubles = [Double](count:3,repeatedValue:0.0)1.2 数组相加 + (数组的元素类型相同)2.访问修改数组:2.1 长度判断:count2.2 判断空:isEMpty2.3 追加数据:append(_:)2.4 += : 添加一个或多个拥有相同
2016-02-18 14:13:39
401
原创 3、字符串和字符
1.字符串可变性: var 声明的字符串为可变的字符串, let 声明的字符串为不可变的字符串。2.空字符串:var emptyStr = "" 此时的 emptyStr就是空的字符串,与 OC 不同,OC NSString * str = nil;才是空的。3.字符串是值类型:与 OC 不一样的是 swift 中的字符串是值类型的,在方法和函数中的传递,会进行值的拷贝。 而在 OC 中字符串
2016-02-18 14:10:07
496
原创 2、基本运算
1.赋值运算符: swift 赋值运算符与C OC 不同的是没有返回值。 if x = y {// 是错误的,因为赋值运算符没有返回值,并且条件判断必须是布尔值 }2.算术运算符: swift中运算符不允许出现溢出,如果溢出直接报错。有专门的溢出运算符 &+ 同时 + 也可以用于 String 的拼接。3.求余运算符:
2016-02-18 14:04:40
401
原创 1.基础部分
1.常量变量: var a let b = "adc",2.类型标注: var welcomeMessage:String = "hello world"没有类型标注的且被赋值的可以根据后面的值做”类型推断”,推断出类型.3.输出:(字符串插值) print("the current value of friendlyWecome is\(welcomeMessage
2016-02-18 13:53:42
338
原创 关于ios8如果不设置section的高度,section可能显示,可能不显示
工作中,app设置页是用sb和纯代码一起混合使用实现的,但是tableHeaderView是自定义的,设置tableview的样式是group样式,但是当将设置页push进去时,group的section是显示的,但是当设置完图片之后pop回来时,group的section不现实了,网上查询说是ios8时section可能显示,可能不显示,坑坑坑!!!,ios7以下不会显示,ios9也没有出现这种
2016-01-31 17:29:52
1559
转载 应用程序进入后台之后的延时操作
@interface AppDelegate ()@property (assign,nonatomic) UIBackgroundTaskIdentifier backgroundUpdateTask;@end@implementation AppDelegate- (void)applicationDidEnterBackground:(UIApplication *)application
2016-01-03 13:17:57
741
原创 数组根据数组中字典的value值排序
数组中有字典的,根据字典的value值来排序. NSMutableArray *myMutableArr = [[NSMutableArray alloc] init] ; NSDictionary *dicOne = [NSDictionary dictionaryWithObjectsAndKeys:@"1",@"price",@"2",@"number", nil];
2015-12-01 16:37:09
1366
原创 UICollectionView
将 UICollectionView 的一些常用的方法和属性搞了一下 UICollectionView 和 UITableView 用法差不多也是继承UIScrollView 的1.常用的方法:// 根据尺寸和布局方法来创建一个 UICollectionView- (instancetype)initWithFrame:(CGRect)frame collectionViewLayout:(U
2015-10-14 18:06:49
616
原创 XMPP 发送图片,不显示解决方案
上篇文章中是将图片压缩成为 NSData 数据进行进行传送的,但是图片好友那边不能将 NSData 转为原始图片解决方案:将图片发送给一个文件服务器,在文件服务器有一个 URL 地址,再将这个 URL 地址发送给 Openfire 服务器,好友那边得到的是 图片的 URL 地址,根据 URL 地址从文件服务器中去下载图片上代码: 在 AppDelegate.h类中添加两个属性@property (
2015-10-14 01:28:22
2225
原创 XMPP 发送消息,发送图片
在 AppDelegate.h类中添加两个属性@property (strong,nonatomic) XMPPMessageArchiving * msgArchiving;@property (strong,nonatomic) XMPPMessageArchivingCoreDataStorage * msgArchivingStorage;在AppDelegate.m类中注册消息模块- (
2015-10-14 00:01:59
1968
原创 XMPP 发送消息,图片
在 AppDelegate.h类中添加两个属性@property (strong,nonatomic) XMPPMessageArchiving * msgArchiving;@property (strong,nonatomic) XMPPMessageArchivingCoreDataStorage * msgArchivingStorage;在AppDelegate.m类中注册消息
2015-10-13 23:57:45
853
原创 XMPP-好友列表模块的注册和好友列表获取,添加,删除
// 花名册@property (strong,nonatomic) XMPPRoster * roster;// 花名册数据存储@property (strong,nonatomic) XMPPRosterCoreDataStorage * rosterStorage;注册花名册模块- (void)connect{ if (self.xmppStream == nil) {
2015-10-13 17:57:57
1245
原创 XMPP-电子名片
四个类:// 电子名片数据存储XMPPvCardCoreDataStorage// 电子名片模块XMPPvCardTempModule// 电子名片的头像XMPPvCardAvatarModule// 电子名片实体XMPPvCardTemp// 注册花名册和头像- (void)connect{ if (self.xmppStream == nil) { // 1
2015-10-13 17:11:45
684
原创 XMPP-用户登录
用户登录的思路:/** * 思路: * 1.初始化 XMPPStream,设置代理 * 2.设置 XMPPStream 的 MyJid hostName * 3.开始链接 * 4.链接成功,发送密码给服务器,进行认证(代理方法中实现) * 5.认证成功,发送一个"在线消息"给服务器,默认登陆成功是不在线的(代理方法中实现) */登录:/** * 链接到 xmpp 服务器
2015-10-13 14:04:28
481
原创 XMPPFramework框架的导入
一、先从 github 上下载XMPPFramework 框架 https://github.com/robbiehanson/XMPPFramework二、新建一个工程,将 XMPP 中的 拖进项目中三、添加依赖库: 设置一下: 至此:ok
2015-10-13 01:45:14
520
原创 XMPP 环境配置
地址:http://www.jianshu.com/p/b401ad6ba1a7 地址:http://www.cnphp6.com/archives/57754
2015-10-09 18:57:20
380
转载 [即时通讯]openfire启动失败解决办法
当你发现你的电脑上的openfire无论你是重新安装还是重启都无法启动的情况下你可以按照我下面写的那些终端指令来启动你的openfire不用再去重新做你的系统了. 一般你发现你的openfire打开出现这样的窗口后你就可以想到你的openfire出问题了,极个别的时候你可以通过重新安装来解决. 如果大家的问题重新安装后没有解决那就试下我下面的方法.先打开自己电脑上的终端然后输入以下指令//获取权限
2015-10-09 16:10:33
1663
原创 二维码
生成二维码的步骤:1.导入CoreImage框架2.通过滤镜CIFilter生成二维码// 1. 实例化二维码滤镜CIFilter *filter = [CIFilter filterWithName:@"CIQRCodeGenerator"];// 2. 恢复滤镜的默认属性[filter setDefaults];// 3. 将字符串转换成NSDataNSData *data = [st
2015-10-08 20:38:03
434
原创 CoreData框架的使用
CoreData框架使用的思路:一、创建上下文的思路 1.”初始化 NSManagedObjectModel 对象,加载模型文件,读取 app 中所有的实体信息NSManagedObjectModel * model = [NSManagedObjectModel mergedModelFromBundles:nil];2.”根据 model 来初始化,NSPersistentStoreCoord
2015-10-08 20:32:01
401
原创 自动布局Autoresizing autolayout VFL
屏幕适配发展历程:代码计算 frame->autoresizing(父子控件之间的关系)->autolayout(任何控件都能产生关系)-> sizeclass(对屏幕适配进行分类,真正布局还是 autolayout)一、autoresizing:1.两个属性:autoresizingMask,autoresizesSubviews autoresizingMask的枚举值:iewAutoresi
2015-10-08 01:22:47
413
原创 分类协议
分类:分类的作用:不改变原来类内容的基础上为类增加一些方法。 使用注意: 1.分类只能增加原来类的方法,不能增加原来类的成员变量 2.分类方法实现中可以访问原来类中的声明的成员变量 3.分类可以重写原来类中的方法,会导致原来的方法没法使用 4.方法调用的优先级:分类(最后参与编译的分类优先级最高)–原来类–父类,分类不建议覆盖掉原来类中的方法。类本身也是一个对象,是Cl
2015-09-01 18:20:33
409
原创 内存管理和 Block
ARC:指定文件编译时用 ARC 机制,指定编译属性:-fobjc-arc,非 ARC :_fno-objc-arc1.黄金法则: 对象调用一次:alloc new copy mutablecopy(自己生成并持有的) retain(非自己生成,而持有的) 就必须调用一次:release autorelease(对自己持有的对象可以进行 release autorelease)2.工厂方
2015-09-01 17:46:47
493
原创 14、iOS 开发之数据库 SQLite3
1.打开数据库int sqlite3_open( const char *filename, // 数据库的文件路径 sqlite3 **ppDb // 数据库实例);2.执行任何SQL语句int sqlite3_exec( sqlite3*, // 一个打开的数据库实例 con
2015-08-29 04:16:44
518
原创 13、iOS开发之数据存储
首先.沙盒目录常见的获取方式1> Documents方式(保存需要持久化的数据,会备份)2> Library/Caches(需要持久化数据,不会备份,缓存)对应的方法:NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES) lastObject];NSDocum
2015-08-29 04:15:16
467
原创 12、iOS 开发之 KVC \KVO
一、KVC:键值对编码1、常用的方法valueForKey:setValue:ForKey:以字符串的形式向对象发送消息2.程序实例@interface Card : NSObject@property (copy,nonatomic) NSString* no;@end@interface Student : NSObject@property (assign,nonatomic) int
2015-08-29 04:12:20
494
原创 11、iOS 开发之 CALayer 和核心动画
一、理解图层与UIView的关系1.UIView能显示在屏幕上,是因为里面有个图层,UIView的DrawRect方法,会将绘制的东西绘在图层上,当要显示的时候,将图层拷贝到屏幕上进行显示二、CALayer的基本属性1.尺寸(bounds)2.背影颜色(backgroundColor)3.位置(position)4.边框颜色(borderColor)、边框长度(borderWidth) "配合
2015-08-29 04:09:18
652
原创 10、iOS 开发之事件处理
一、只有继承了UIResponder的对象才能接受并处理事件–”响应者事件”1.触摸事件- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event;- (void)touchesEnded:(NSS
2015-08-29 04:05:32
398
原创 9、iOS开发之 Quartz-2d
/** 摘要: 1.掌握Quartz2d的图形绘制API 2.掌握图形上下文与输出目标 */一、画线drawLine1.获取上下文件UIGraphicsGetCurrentContext();2.设置起点CGContextMoveToPoint(ctx, 10, 10);3.添加连接点AddLineToPoint(ctx, 110, 10);4.渲染CGContextStrokePat
2015-08-29 04:01:37
469
原创 8、iOS 开发之多控制器管理
控制器UIViewController的两个属性tabBarItem和navigationItemtabBarItem-->UITabBarControllernavigation-->UINavigationController一、控制器的创建方式1.”通过storyboard方式创建 1> 先加载storyboard文件UIStoryboard * storyboard = [UIStor
2015-08-29 03:50:18
579
原创 7、iOS 开发之程序启动原理
四大对象:UIApplicationAppDelegateUIWindowUIViewController一、UIApplication获得对象UIApplication *app = [UIApplication sharedApplication];注意:不能通过[[UIApplication alloc] init]获得1.UIApplication的常用属性// 程序图标左
2015-08-29 03:46:11
395
原创 6、iOS 开发之 UIPickerView
UIPickerView控件一、UIPickerView1、常见属性// 数据源(用来告诉UIPickerView有多少列多少行)@property(nonatomic,assign) id<UIPickerViewDataSource> dataSource;// 代理(用来告诉UIPickerView每1列的每1行显示什么内容,监听UIPickerView的选择)@property(non
2015-08-29 03:39:20
462
原创 5、通知和代理区别和使用
一、代理Delegate1.使用的场合主要用于子控件发生某些动作时,通知父控件,子控件的代理是父控件。常见就控制器就是子控件的的代理。2.代理的使用步骤1> 先搞清除谁是谁的代理2> 定义代理协议,协议名称的规范是:控件类名+Delegate3> 定义代理方法 *代理方法一般都定义@optional *代理方法名都以控件名开头 *代理方法至少一个参数,将控件本身传递出去
2015-08-29 03:37:21
1079
原创 4、iOS 开发之 UITableView
一、UITableView的创建表格控件在创建时必须指定样式,只能使用以下实例化方法[[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStyleGrouped];UITableView的两种样式 1> UITableViewStylePlain 2> UITableViewStyleGrouped2.UIT
2015-08-29 03:31:01
682
原创 3、iOS 开发之 UIScrollView UIPageController NSTimer
一、UIScrollView属性1.常见的属性// 移动的位置@property(nonatomic) CGPoint contentOffset;// 内容的大小@property(nonatomic) CGSize contentSize;// 四边扩展的边距@property(nonatomic) UIEdgeInsets contentInset;2.其他属性// 弹簧效果@pr
2015-08-29 03:22:06
776
原创 2、iOS 开发之字典转模型和 xib
一、字典转模型(plist文件)模型的封装方法:(放到代码仓库中)1.在.h文件中添加与plist文件key值对应的属性名Array --- > NSArrayDictionary --- > NSDictionarystring ---> NSStringnumber ---> NSNumber注意:属性名和plist中key值一定要一致2..h文件文件中属性的strong weak cop
2015-08-29 03:16:28
941
原创 1、iOS 开发之基础控件
1、UIView的常见的属性@property(nonatomic) CGRect frame;@property(nonatomic) CGRect bounds;@property(nonatomic) CGPoint center;@property(nonatomic) CGAffineTransform transfor
2015-08-29 02:56:38
883
原创 OC基础语法学习:Foundation框架
常用结构体:在Foundation中定义了很多常用结构体类型来简化我们的日常开发,这些结构体完全采用Objective-C定义,和我们自己定义的结构体没有任何区别,之所以由框架为我们提供完全是为了简化我们的开发。常用的结构体有NSRange、NSPoint、NSSize、NSRect等#import <Found
2015-06-11 14:14:22
676
原创 OC基础语法学习7:协议
基本用途:可以用来声明一大堆方法(不能声明成员变量)只要某个类遵守了这个协议,就相当于拥有这个协议中的所有方法声明只要父类遵守了某个协议,就相当于子类也遵守了格式:协议的编写@protocol 协议名称// 方法声明列表@end某个类遵守协议@interface 类名 : 父类 <协议名称>@en
2015-06-05 11:58:22
384
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人