Objective c 返回指向不同对象的指针的方法是否自动分配并初始化另一个对象?
假设我有以下代码:Objective c 返回指向不同对象的指针的方法是否自动分配并初始化另一个对象?,objective-c,ios,cocoa-touch,pointers,memory-management,Objective C,Ios,Cocoa Touch,Pointers,Memory Management,假设我有以下代码: NSString *inspDate = @"20120515"; NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"yyyyMMdd"]; NSDate *inspectionDate; inspectionDate = [dateFormatter dateFromString:inspDate]; 当我检查它是否工作时(NSDa
NSString *inspDate = @"20120515";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyyMMdd"];
NSDate *inspectionDate;
inspectionDate = [dateFormatter dateFromString:inspDate];
当我检查它是否工作时(NSDate
包含正确格式的数据),它确实。。。但是为什么呢
在这里,我将介绍以下步骤:
NSDateFormatter
的内存dateFormatter
指向该位置,明白了:
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter
被告知如何将NSString
解释为日期,好吗:
[dateFormatter setDateFormat:@"yyyyMMdd"];
inspectionDate
指针设置为nil。它没有指向任何东西:
NSDate *inspectionDate;
alloc
或init
调用inspectionDate
时,dateFormatter
如何返回指向NSDate
的指针?dateFromString
的实现是否在其实现中执行alloc
和init
inspectionDate = [dateFormatter dateFromString:inspDate];
帮助我想象这将是一个巨大的帮助。谢谢大家! dateFromString方法将实例化一个
NSDate
对象(可能通过某个点的alloc/init调用,或者通过本身将执行分配的NSDate
便利方法),然后将其分配给inspectionDate
变量。与任何不以alloc
、new
或copy
开头的“便利”方法一样,不存在对象所有权的转移,即返回的实例是自动删除的。。。。然后自动释放返回的日期。dateFromString
为我分配和初始化NSDate
对象,我只是用我的inspectionDate
指针指向堆中的创建。谢谢你,先生!