1.URL中文问题:
URL不支持中文。若出现中文,需要对URL进行utf-8编码。
NSString *urlString = [kULRSTRING stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
2.把UIImage转换成二进制数据NSData:
第一行:把png图片转换为二进制数据; 第二行:把jpeg图片转换为二进制数据
3.NSString和NSData的互相转换:
4.一次性设置所有导航条的背景图片:
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"navigationbar"] forBarMetrics:UIBarMetricsDefault];
5.一次性关闭所有导航条的半透明:
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
等效于被注释掉的部分:
OC只允许单继承,多接口。
通过继承可以获得其他类的属性和方法;通过实现接口可以获得其他类的方法。
既然OC是单继承的,那我怎么获得多个父类的属性??
——————————————————————————————————————————
JSON文档中的数据类型:
“123” ——>NSString
123 ——>NSNumber
null ——>NSNull
——————————————————————————————————————————
nil和NULL的区别:
——————————————————————————————————————————
用xib创建视图,走的是awakeWithNib构造函数;用代码创建的视图,走的是init构造函数。
——————————————————————————————————————————
怎么获得手机的系统版本?
float version = [[[UIDevice currentDevice] systemVersion] floatValue];
——————————————————————————————————————————
聊天气泡的拉伸:
俩参数为设置图片的像素位置,使图片在该点拉伸,而不会整体拉伸。
- (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:(NSInteger)topCapHeight;
——————————————————————————————————————————
去掉cel的分割线:
tabView.separatorStyle = UITableViewCellSeparatorStyleNone;
——————————————————————————————————————————
使cell无点击选中效果:
self.selectionStyle = UITableViewCellSelectionStyleNone;
——————————————————————————————————————————
iOS观察者模式,及应用(通知中心,KVO,Delegate): http://blog.csdn.net/xdrt81y/article/details/24039163
当我们对某对象的属性改变敏感时,可以给它注册观察者,当该对象的属性值发生变化时,会通知我们,会自动调用回调函数。
1.给某对象注册观察者,观察它的某属性;
——————————————————————————————————————————
根据文本内容,自动计算其尺寸:
- (CGRect)boundingRectWithSize:(CGSize)size options:(NSStringDrawingOptions)options attributes:(NSDictionary *)attributes context:(NSStringDrawingContext *)context
——————————————————————————————————————————
在block外创建的对象,不能在block里直接使用,因为block和主程序执行是异步的,block执行时该对象已被销毁。所以说,,,__block 关键字的本质是拷贝了一份原来对象么???
————————————————————————————————————————————
————————————————————————————————————————————
iPad开发与适配:
分割视图,需要同时存在两个viewController. 和tabbarViewController很相似,相当于一个容器,里面可以装VC和navC
webView,也是继承自scrollView。只要能滚动的视图都继承自scrollView,
—————————————————————————————————————————
根据字符串str,求以它为前缀的字符串。
—————————————————————————————————————————
常见容器视图:
UITabBarController, UINavigationController(导航控制器), UISplitViewController (分割视图,ipad)
—————————————————————————————————————————
iOS的国际化:http://www.cnblogs.com/qingjoin/p/3899265.html
—————————————————————————————————————————
storyboard,它和xib的区别:
在一个storyboard里可以布局多个界面视图,并且能清晰的体现他们之间的关系结构,而且storyboard能完成界面跳转。
界面跳转:segue
push,modal,custom三种跳转方式的区别?
—————————————————————————————————————————
代码版本管理工具:svn 和 git
svn:
第一次取代码:checkout;
更新代码:updata;
提交代码:commit。
写完自己的代码,先updata再commit。
http://www.cnblogs.com/ludashi/p/4018245.html
—————————————————————————————————————————
解决键盘遮挡输入框的几种方案:
1.当textfield被点击后弹出键盘,并且使整个view上移键盘的高度。当endediting,隐藏键盘的同时再调低view的高度。
2.利用UIKeyboardDidShowNotification
—————————————————————————————————————————
学生代码管理 http://10.2.100.8/stuproj/1502/[名字拼音]_PocketKitchen.git
—————————————————————————————————————————
id和instancetype的区别:
id是任意类型,类型提升;
instancetype是指生成当前类的类型,是哪个类,就是哪个类型。(若是YWViewController,为什么不写明是YWViewController呢?答案是复制方便。写instancetype是动态实时的获取类型的)
—————————————————————————————————————————
iOS定制控件:
http://www.cocoachina.com/industry/20131104/7287.html?utm_source=tuicool
http://blog.csdn.net/zhanghanming199038/article/details/8755680
—————————————————————————————————————————
模态视图控制器:
—————————————————————————————————————————
以前在做界面中的一条线的方法是通过调整UILabel的宽高来实现的。但更高级的方法是用用绘图API完成。
—————————————————————————————————————————
iOS响应者链
—————————————————————————————————————————
很多时候我们要把从网络解析来的dict装入model,这时我们可以利用KVC的setValuesForKeysWithDictionary:方法来一次性的赋值,很方便,但它的弊端是不太安全,若写错key,则key和model里的属性对应不上,就会报错。这时我们应该重写两个方法。
—————————————————————————————————————————
viewDidLoad方法里一般写:1.初始化一些数据(数组,字典等);2.UI布局;3.加载数据(网络请求或者本地加载)
重写原来的解析器方法,以自定义一个更适合自己的JSON解析器。
AFHTTP,请求网络方法几个步骤,封装成一个方法。是请求网络只需调用这一个方法即可。
网络请求方法GET的返回类型是AFHTTPRequestOperation,但是我们在调用这个GET方法的时候没有使用变量去接收这个返回值。其实这个方法的返回值的主要用于多次中断下载,当你的APP可以一次性下载完时,就不需要它了。若是中间请求网络,下载数据的时候被中断了,下次下载的时候会从这个返回值里取得一些信息。
—————————————————————————————————————————
从服务器获得的日期格式是yyyy-mm-dd形式的。怎么单独获得day呢?
我首先想到的是通过索引起始位置求子串,但这种方法不太可行,若月份天数有可能有时是一位数,有时是两位数的。
然后想到的是字符串的分割方法 NSArray * array = [str componentsSeparatedByString:@"-"];通过-来分割字符串。
—————————————————————————————————————————
imageView里的contentMode = UIViewContentModeScaleAsPectFill
—————————————————————————————————————————
CoreData:映射。数据库表和model属性的映射。
FMDB不支持多线程,所以FMDB官方建议使用DatabaseQuene
MFDB批量更新数据库:http://blog.csdn.net/x32sky/article/details/18965155
—————————————————————————————————————————
在写单例方法时,加锁可以用@sy... 那种方法,但现在比较流行gcd多线程加锁的方式。
static dispatch_once_t token;
dispatch_once(&token, ^{
_appSupport = [[QFAppSupport alloc] init];
});
—————————————————————————————————————————
iOS 编程实战 最新版 (下载pdf)
—————————————————————————————————————————
present,dismiss和push,pop的区别;
前两者适用于所有的界面,而后两者是导航控制器中的内容,只有该界面是装入导航控制器的,才能用push和pop,它跳转的界面之间是层结构(栈结构);而前两者是跳转的界面是平行的。
—————————————————————————————————————————
cookMenuVC.title = @"菜谱";这样写在tabBar和navBar中都会有title;
cookMenuNavC.tabBarItem.title = @"ca"; 这样写只在tabBar中又title
—————————————————————————————————————————
原子性,非原子性。
—————————————————————————————————————————
iOS7以后默认都有返回滑动手势,在屏幕左边缘向右滑动,就会返回上一层页面(相当于pop)。但是如果自定义了navgationBar的Back按钮,则就关闭了该返回手势,所以,此时我们得手动开启它。
—————————————————————————————————————————
iOS里实现回调的方式:
1.代理
2.block
—————————————————————————————————————————
GCD:
dispatch_async( ) 异步:函数会立即返回,block会异步执行,不阻塞
dispatch_sync( ) 同步:函数会等待执行完毕后再返回,阻塞
GCD中三种队列:主队列,全局队列,自创建队列
串行队列,并发队列
http://blog.csdn.net/springpp1990/article/details/12451913
http://www.cnblogs.com/sell/archive/2013/02/06/2905693.html
—————————————————————————————————————————
APP上线后,经常会升级更新,而且数据库中的表可能会发现变化,所以要做数据库版本的控制。
APP的图标,和启动页
修改APP的名字
——————————————————————————————————————————
Core Animation
CALayer
锚点
给CollectionView添加Header
http://my.oschina.net/zboy/blog/221525
开发证书,推送证书,配置文件。
真机测试
——————————————————————————————————————————
——————————————————————————————————————————
iOS 支付宝开发步骤:
1.去官网注册合约账号,注册后会有
——————————————————————————————————————————
这两行代码都是在iOS7下修改navigationBar的背景颜色的。
self.navigationController.navigationBar.backgroundColor = [UIColor greenColor];
self.navigationController.navigationBar.barTintColor = [UIColor whiteColor];
——————————————————————————————————————————
设置navigationBar的文字颜色,文字字体,文字阴影等
self.navigationController.navigationBar.titleTextAttributes = @{UITextAttributeTextColor:[UIColor whiteColor]};(会报异常)
self.navigationController.navigationBar.titleTextAttributes = @{NSForegroundColorAttributeName:[UIColor whiteColor]};(不会报异常)
更多设置:http://www.41443.com/HTML/iphone/20141221/253422.html
导航条的半透明开关闭到底是哪个?? self.extendedLayoutIncludesOpaqueBars = YES;
——————————————————————————————————————————
用代码实现AutoLayout
VFL语言
但是这些都很繁琐,实际开发中我们一般使用自动布局的第三方库Masonry,用Masonry设置约束
第三方库管理插件
——————————————————————————————————————————
第三方登录:QQ登录
http://blog.sina.com.cn/s/blog_92ac2c5b0101cly9.html
——————————————————————————————————————————
http://blog.csdn.net/totogo2010/article/details/7645693
——————————————————————————————————————————
当自定义的视图不是控制器时,它使没有initWithNibName这个构造方法的,要想初始化xib文件,可以使用
NSArray * arr = [[NSBundle mainBundle] loadNibNamed:@"" owner:self options:nil];
——————————————————————————————————————————
[NSString stringWithUTF8String:object_getClassName(self)] 这行可以判断当前类,所以在base中判断当前类就行了,
——————————————————————————————————————————
把返回结果的处理封装在block里,(把block用typed定义成类型,然后用block作返回处理)。
——————————————————————————————————————————
pch文件,(precompiled header)预编译头文件(放置重复import,重复编译)
xcode6之后,创建项目后不会自动帮我们创建.pch文件了,当我们需要时,要我们自己手动创建。
——————————————————————————————————————————
把解析的dict给model赋值,简便方法是使用KVC,model对象调用setValuesForKeysWithDictionary:
使用KVC需要注意的地方:
1.字段要对应,若字段不对应会奔溃。需要重写forUndefinedKey:方法,若,则不需要为他赋值
——————————————————————————————————————————
回调函数一般有两种方式实现:代理模式和block
对block进行内存管理,要使用copy。
——————————————————————————————————————————
initWithNibName等几个函数的区别:
http://www.cnblogs.com/geraldzhang/archive/2011/09/21/2183970.html
——————————————————————————————————————————
runloop:
——————————————————————————————————————————
block的生命周期和内存管理
http://www.tanhao.me/pieces/310.html/
http://www.cnblogs.com/tangbinblog/archive/2012/12/31/2840690.html
初始化时是在栈上,进行copy操作是为了把block从栈上拷贝到堆上使用
可以使用typedef定义一个block类型,便于后续使用,不过一般情况下我们不用这样,就像系统SDK一样,int (^)(int x, int y) myblock
在block有时会陷入强引用循环的僵局,造成对象无法被释放的僵局。
typedef int(^Myblock) (int, int);
Myblock mb = ^(int x, int y){
};
——————————————————————————————————————————
1.若不是iOS7以上的应用则不通过上线;
2.若不适配iphone6以上,则不通过上线;
3.若应用不支持arm64设备架构,则不通过上线
——————————————————————————————————————————
任务:
换头像(图片选取器);
第三方登录:QQ
第三方分享:在专题详情界面添加分享功能ShareSdk
第三方支付:
autolayout 以及Masonry;
定位与第三方地图接口;(LBS)
远程推送的原理 (APNs)
即时通讯(XMPP)
苹果有关的所有证书。
第三方类库管理cocopods http://blog.csdn.net/meegomeego/article/details/24005567
多线程,runloop
反射机制
NSArray和NSMutableArray在内存中的不同 :
前者在内存中的数据结构是List,它是连续的,分配的内存是固定的;
后者在内存中的数据结构是链表,它是不连续的。
isMemberOfClass
视图响应链
事件传递机制
drawRect方法
iOS数据库,sqlite和CoreData
第一响应者
应用上线的操作流程
代码版本控制:svn和git
触摸事件的传递:由父视图传向子视图(由下而上)。若父控件不能接收触摸事件,则子控件就不可能接收到触摸事件。
友盟的社会化分享,第三方登录,第三方推送
环信(第三方即时通讯)
QF——网络之知识碎片的更多相关文章
-
IOS开发基础知识碎片-导航
1:IOS开发基础知识--碎片1 a:NSString与NSInteger的互换 b:Objective-c中集合里面不能存放基础类型,比如int string float等,只能把它们转化成对象才可 ...
-
iOS网络相关知识总结
iOS网络相关知识总结 1.关于请求NSURLRequest? 我们经常讲的GET/POST/PUT等请求是指我们要向服务器发出的NSMutableURLRequest的类型; 我们可以设置Reque ...
-
iOS网络基础知识
iOS网络基础知识 1.一次HTTP请求的完整过程 (1)浏览器或应用发起Http请求,请求包含Http请求Http(请求),地址(url),协议(Http1.1)请求为头部 (2)web服务器接收到 ...
-
网络基础知识、ASP.NET 核心知识(1)*
为什么要写网络? 我原本的计划是这样的,连续两天梳理ASP.NET开发的核心知识.说到这呢,有人问了.“不是说好了做ASP.NET笔记吗?为啥要写网络基础知识?是不是傻?” 原因是这样的.作为网站开发 ...
-
Java 网络编程(一) 网络基础知识
链接地址:http://www.cnblogs.com/mengdd/archive/2013/03/09/2951826.html 网络基础知识 网络编程的目的:直接或间接地通过网络协议与其他计算机 ...
-
LINUX涉及网络相关知识
才接触到网络的老铁,是否比较晕呢? 简单记录一下网络相关知识吧(IPV4)! A0. 网络号.主机号 A1.网络地址分类: A2. 保留地址: A3. 子网掩码作用:(子网掩码.IPV4地址做“与”运 ...
-
Linux运维笔记(一)网络基础知识
网络基础知识 一.基本概念 1.ARPANET & TCP/IP:以“软件”技术将网络硬件整合,使得不同的计算机或者数据可以通过这个软件达成数据沟通(TCP/IP技术也被称为Internet) ...
-
TCP/IP协议(一)网络基础知识
参考书籍为<图解tcp/ip>-第五版.这篇随笔,主要内容还是TCP/IP所必备的基础知识,包括计算机与网络发展的历史及标准化过程(简述).OSI参考模型.网络概念的本质.网络构建的设备等 ...
-
IOS开发基础知识--碎片13
1:运行程序报the file couldn't be opened because you don't have permission to view it 解决办法:项目—>targets- ...
随机推荐
-
.NET 基础 一步步 一幕幕 [.NET 系列预热]
.NET 系列预热 .NET : 一般指.Net Framework框架.一种平台,一种技术. .NET 下的编程语言有C#,F#,VB:在这里我们主要讲述的C#. .NET 一般都能干什么呢? l ...
-
【经验之谈】Windows环境下配置WordPress
前言 wordpress全球著名的开放博客平台,拥有成千上万个各式插件和不计其数的主题模板样式,使用php和mysql搭建,下面说下载windows环境下配置wordpress,经验之谈. 安装 关于 ...
-
PS要点
1.通道 意味着我们同过不同的角度来看图像,可以得到不同的图像信息,PS是以灰度图像来表现这种信息的强弱. 我们能看到什么取决于我们的视角.任何灰度图像都可以按照不同的规则来构成彩色图像. 通道除了能 ...
-
HDU 1869 六度分离【floyd】
题意:给出n个人,m个关系,问是否满足任意两个人之间的距离通过6个人就可以连接 用floyd就可以了,注意距离是大于7 #include<iostream> #include<cst ...
-
在js中获取easyui datagrid的数据
可以在页面对datagrid的数据直接进行修改,然后提交到数据库,但是要求在提交前获取datagrid的所有行的数据.API提供了getData方法,但是怎么用了,没说. 最后这样写才搞定 var a ...
-
session 共享
目前大多数大型网站的服务器都采用了分布式的部署方式,但是session是在服务器端保存的,如果用户跳转到其他服务器的话,session就会丢失,于是就有了分布式系统的session共享问题. sess ...
-
jQuery -&;gt; 获取各种滤芯(filter)
按顺序选择 依次选择过滤器(filter)有着 :first 第一元件 :last 最后一个元素 :even 序号为偶数的元素 :odd 序号为奇数的元素 :eq(n) 序号等于n的元素 :lt(n) ...
-
ORA-12516: TNS: 监听程序找不到符合协议堆栈要求的可用处理程”的异常
简单说明:我们开发时多人开发,会频繁访问服务器数据库,结果当连接数大的时候,就会报ora-12516的错误,ORA-12516: TNS: 监听程序找不到符合协议堆栈要求的可用处理程"的异常 ...
-
Android平台上的Aplay与TinyAlsa移植使用
ALSA是高级Linux声音架构.提供了一系列音频的逻辑接口,包括PCM.CONTROL等.这些,不影响它的使用,了解一下就可以. 在Android设备上,linux 2.x的版本,要控制录制播放音频 ...
-
python-day2列表、元祖、字典;编码;字符串
@导入模块时,会先搜索目前路径的同名py文件,再去全局环境变量找 @看模块的环境变量 import sys print(sys.path) @site-package存放第三方库,可以把自己建的拷贝在 ...