振宁

LOFTERC03507B534C477E041E4531A5EE22C83

LOFTERC03507B534C477E041E4531A5EE22C83

[IOS] AFNetwork 删除cookies

NSArray *array = [[NSHTTPCookieStoragesharedHTTPCookieStorage] cookies];

NSHTTPCookie *cookie;

 

for (cookie in array)

{

       [[NSHTTPCookieStoragesharedHTTPCookieStorage] deleteCookie:cookie];

}

[IOS]ASIHttpRequest URL空格处理

URL中的空格,需要换成%20

[IOS]常用CGRect的交错,边缘,中心的检测

判断给定的点是否被一个CGRect包含,可以用CGRectContainsPoint函数

BOOL contains = CGRectContainsPoint(CGRect rect, CGPoint point);

判断一个CGRect是否包含再另一个CGRect里面,常用与测试给定的对象之间是否又重叠

BOOL contains = CGRectContainsRect(CGRect rect1, CGRect rect2);

判断两个结构体是否有交错.可以用CGRectIntersectsRect

BOOL contains = CGRectIntersectsRect(CGRect rect1, CGRect rect2);

float float_ = CGRectGetMaxX(CGRect rect);返回矩形右边缘的坐标

CGRectGetMaxY返回矩形顶部的坐标

CGRectGetMidX返回矩形中心X的坐标

CGRectGetMidY返回矩形中心Y的坐标

CGRectGetMinX返回矩形左边缘的坐标

CGRectGetMinY返回矩形底部的坐标

[android]android-getTextSize返回值是以像素(px)为单位的,setTex

使用如下代码时,发现字号不会变大,反而会变小:
size = (int) mText.getTextSize() + 1;
mText.setTextSize(size);
后来发现getTextSize返回值是以像素(px)为单位的,而setTextSize()是以sp为单位的,两者单位不一致才造成这样的结果。


这里可以用setTextSize()的另外一种形式,可以指定单位:
setTextSize(int unit, int size)
TypedValue.COMPLEX_UNIT_PX : Pixels
TypedValue.COMPLEX_UNIT_SP : Scaled Pixels
TypedValue.COMPLEX_UNIT_DIP : Device Independent Pixels


下面这样就正常了:
size = (int) mText.getTextSize() + 1;
mText.setTextSize(TypedValue.COMPLEX_UNIT_PX, size);

原文地址

i=i++

PS:无聊中做了个几道题,才发现自己的基础是时候该补一补了!

int i=0;

i=i++;

NSLog(@"%d",i); i会是多少呢!

A:i=0

解:原引文章

他说这个i = i++;的操作可能相当于以下三步操作:①把变量i的值取出来,放在一个临时变量里(我们先记作temp);②把变量i的值进行自加操作;③把临时变量temp的值作为自增运算前i的值使用,在本题中就是给变量i赋值。因此,经过以上三步操作以后,虽然变量i在第②步操作中进行了自增运算,但第三步操作以后又把原来的值赋给了它,故最后输出结果为1。虽然我不确定这种解释是否正确,毕竟对底层实现细节不是太了解,但这种解释至少跟结果是符合的。

原文地址

 

都是i=i+1的意思,区别在于i++是i先不自加,在语句完后自加,++i先自加;列如a=1+i++;i本来为1的话,这里a=1+1;语句完后i才加1为2; a=1+++i的话就先i=i+1;i=2.然后a=i+1,a=3

[IOS]IOS中Foreach使用不当会引起NSGenericException[转]

最近在做一个应用时,测试时发现一个我写的控制器控制节点出现了问题,开始报NSGenericException错误,日志报的原因时迭代遍历元素时,元素被改变了,一开始我认为是线程同步出了问题,所以把迭代过程用线程锁保护了起来,但是发现问题依旧,然后开始不停查资料,最终发现问题居然在控制器为节点发消息的循环上。

原因就在这 "foreach",它的内部遍历使用了类似 Iterator进行迭代遍历,一旦元素变动,之前的元素全部被失效,所以在foreach的循环当中,最好不要去进行元素的修改动作,若需要修改,循环改为for遍历,由于内部机制不同,不会产生修改后结果失效的问题。

总结一下:遍历元素时,若需要修改原元素,不要使用foreach,而使用for循环。

原文地址

[不务正业]-振宁语录(火热更新中...)

1.简单,容易 使人轻看事务的本质.

2.不要为一个人,影响整个团队,尤其是那些不开窍的!

3.与其不能改变现状,不如改变整个环境!

4.挣钱如便秘,花钱如穿稀-人生屎(使)命

[IOS]关于无法在通知栏中删除推送的消息

当收到推送通知后,在通知栏点击进入应用后,这条消息还存在!

解决方法:

检查服务端推送内容中是否含有badge这个字段,没有请加上并且为int型

在appdelegate中添加[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0];