ios - 这两段代码有什么区别?

标签 ios objective-c

所以,我想知道这两段代码之间除了语法差异之外还有什么区别?

BBDataStore* tempDataStore = [[BBDataStore alloc] initWithDataExpiry:DATA_EXPIRY_TIME];
    self.dataStore = tempDataStore;

self.dataStore = [[BBDataStore alloc] initWithDataExpiry:DATA_EXPIRY_TIME];

Self.dataStoreBBDataStore 的一个属性。

据我所知 - 这里没有区别。

在第一个示例中 - 我们最终将 tempDataStore 分配给 self.dataStore - 这是 BBDatastore 的一个实例。

在第二个例子中——我们实际上做了同样的事情……不是吗?

最佳答案

BBDataStore* tempDataStore = [[BBDataStore alloc] initWithDataExpiry:DATA_EXPIRY_TIME];
self.dataStore = tempDataStore;

这是将 BBDataStore 的实例保存到 tempDataStore 中。您正在将 tempDataStore 分配给其他对象,比如 self.dataStore。

self.dataStore = [[BBDataStore alloc] initWithDataExpiry:DATA_EXPIRY_TIME];

这是self.dataStore的直接初始化。

不同之处仅在于在第一种方式中,图片中多了一个变量,它也消耗了内存位。即使我们有方便的初始化方法,为什么还要消耗内存。因此,您应该避免使用第一种方法,而采用第二种方法,这种方法非常通用且也很合适。

关于ios - 这两段代码有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20241440/

相关文章:

objective-c - 身份标签的值可以在代码中访问吗?

objective-c - 如何创建值包含字符序列的谓词,例如 Xcode 过滤

objective-c - 序列化时 JSONKit 无法识别选择器

objective-c - 为什么 NSDecimalNumber 出现在 NSString 中?

objective-c - 如何在 Xcode 的 UIImageView 中获取 UIImage 坐标(x,y,width,height)

iphone - 有没有办法访问通知中心显示的通知?

ios - jpeg 图像背景透明度的可用性

ios - 如何通过swift打开表情符号键盘

ios - 检测国际键盘的出现和消失

iphone - 播放最大的扬声器音量,然后使用 AVAudioPlayer --- IOS 重置到之前的音量