所以,我想知道这两段代码之间除了语法差异之外还有什么区别?
BBDataStore* tempDataStore = [[BBDataStore alloc] initWithDataExpiry:DATA_EXPIRY_TIME];
self.dataStore = tempDataStore;
和
self.dataStore = [[BBDataStore alloc] initWithDataExpiry:DATA_EXPIRY_TIME];
Self.dataStore
是 BBDataStore
的一个属性。
据我所知 - 这里没有区别。
在第一个示例中 - 我们最终将 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/