NSNumber:numberWith n initWith

时间:2011-08-31 03:03:01

标签: objective-c

有什么不同

[NSNumber numberWithInteger:]

[NSNumber initWithIneger:]?

2 个答案:

答案 0 :(得分:2)

+numberWithInteger:返回的号码是自动释放的; -initWithInteger:返回的那个不是。 (另外,在发送+alloc之前,您需要-initWithInteger: NSNumber,而+numberWithInteger:'则不需要这样做。)

NSNumber *foo = [[NSNumber alloc] initWithInteger:7]; // you must release foo when done
NSNumber *bar = [NSNumber numberWithInteger:7];       // bar is autoreleased

答案 1 :(得分:-2)

initWithIneger:以“init”开头,因此您需要释放此方法返回的对象。

numberWithInteger:不以“init”或“new”或“alloc”开头,因此返回的对象是自动释放的。你不需要发布它。如果你想保留它供以后使用,你需要保留它。