OC里面
对于NSMutableData来说setData和直接赋值是有很大区别的
NSMutableData *data = [[NSMutableData alloc]init];
[data setData:nil];
代码执行完后data并不会为nil。

03E86F0D-5E96-414E-9029-A282EA5213D2
然而如果直接使用代码data = nil;的话则会完全不一样

0D25BEDD-B2C8-47CB-BE34-E862D528C60D
之前在做聊天项目的时候就是不小心使用了data = nil;,导致后续data没有初始化无法接收到数据。
思考1
对于NSMutableDictionary、NSMutableArray、NSMutableString都会有相似的情况
思考2
对于swift则不存在这样的问题,swift是强类型,会直接抛出警告

3A82CB64-F2EA-46CF-A4A0-D5252DC18E54.png