有什么不同
[NSNumber numberWithInteger:]
[NSNumber initWithIneger:]?
答案 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”开头,因此返回的对象是自动释放的。你不需要发布它。如果你想保留它供以后使用,你需要保留它。