OC里面
对于NSMutableData
来说setData
和直接赋值是有很大区别的
NSMutableData *data = [[NSMutableData alloc]init];
[data setData:nil];
代码执行完后data
并不会为nil
。
然而如果直接使用代码data = nil;
的话则会完全不一样
之前在做聊天项目的时候就是不小心使用了data = nil;
,导致后续data
没有初始化无法接收到数据。
思考1
对于NSMutableDictionary
、NSMutableArray
、NSMutableString
都会有相似的情况
思考2
对于swift则不存在这样的问题,swift是强类型,会直接抛出警告