博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
阳光欣晴工作期间杂记,包括xcode设置、常见bug等
阅读量:2340 次
发布时间:2019-05-10

本文共 1605 字,大约阅读时间需要 5 分钟。

1、设置AFNetworking自动清除数据结果的NSNull对象

AFNetworking中可以设置AFJSONResponseSerializer对象的removesKeysWithNullValues属性为YES,使AFNetworking自动清除请求结果中NSNull对象,这个功能比较强大,它是分析json之后做的清除操作,原类型为字符串的话转换为@“”,原类型为字典或数组的话转换为nil,代码如下(这是阳关欣晴CNNetworkProxy类中的代码片段):

AFJSONResponseSerializer *response = [[AFJSONResponseSerializer alloc] init];

response.removesKeysWithNullValues = YES;

2、项目开始时要和后台协商null的处理

项目开始前要和后台商量好,不能有空对象,即null,一律用默认值。

java中没有nil,java中用null表示空对象,转son后在转为oc则变为oc的空对象NSNull;oc中nil表示对象指向空,Nil表示类指向空;

3、压缩函数选区

苹果提供两种压缩函数,jpeg函数压缩出来的图片比较小,png函数压缩出来的图片说不定比原来的还要大,因为苹果做了一些处理,加入了一些安全数据

4、XXX转换为长整形时都必须使用longLongValue

NSString没有longValue这个属性,只有longLongValue属性,NSString使用longValue编译不报错,但是运行时出错,而其它类型的对象同时可以使用longValue和longLongValue属性,所以为了避免不必要的错误,一律使用longLongValue属性

5、NSString属性不能用weak修饰

NSString属性不能用weak修饰,在ios8时weak型的NSString传值是失败的,因为父控制器中的字符串已经释放,weak型字符串就指向空了;在iosx操作系统中都是错误的,但是其它系统自动修正了这个错误。

6、重写copy修饰的属性的设置函数

对于@property (nonatomic, copy) NSString *uid;类型的属性其设置函数应该如下:

- (void)setUid:(NSString *)did

{

_uid = [uid copy];//copy必须有,否则只是strong修饰的属性

}

copy修饰的属性必须这么写才能做到真正的 copy,否则只是相当于strong修饰的属性

7、局部操作tableview时偶尔崩溃的解决方案

[self.tableView beginUpdates];

[self.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];

[self.tableView endUpdates];

8、设置自定义cell的背景颜色

自定义cell的设置背景色应该对self.contentView设置,对self设置不起作用

9、Xcode如下设置,则debug时可以打印self.frame等

添加UIApplicationMain类型的Breakpoint,编辑该断点:
a、在symbol中填入UIApplicationMain
b、在action中选择Debugger Command,并在其下方输入框中输入expr @import UIKit
c、选中options复选框

10、scrollView滚动时自动收起键盘

在xib中设置scrollView的keyboard属性为Dismiss on drag,即可使的scrollView滚动时自动收起键盘。

转载地址:http://pdwvb.baihongyu.com/

你可能感兴趣的文章
一文读懂KMP算法
查看>>
402. Remove K Digits
查看>>
75. Sort Colors
查看>>
获取数组中前K小的数字
查看>>
数组heapify变为堆结构
查看>>
二叉树的非递归遍历
查看>>
218. The Skyline Problem
查看>>
Java PAT (Basic Level) Practice 写出这个数
查看>>
Python PAT (Basic Level) Practice 1016 部分A+B
查看>>
Python PAT (Basic Level) Practice 1006 换个格式输出整数
查看>>
Python PAT (Basic Level) Practice 1009 说反话
查看>>
Python PAT (Basic Level) Practice 1011 A+B 和 C
查看>>
Python PAT (Basic Level) Practice 1017 A除以B
查看>>
Python PAT (Basic Level) Practice 1042 字符统计
查看>>
spring dubbo 2.7.3 zookeeper 项目构建
查看>>
spring dubbo 报错
查看>>
如何在非 bean 对象中注入 dubbo service
查看>>
前后端分离 ajax java跨域配置 spring boot 、 spring security
查看>>
java spring boot 拦截所有请求 显示请求路径 方法 ip 等
查看>>
java spring boot jackson 配置 null字符串为"" null数组为[]
查看>>