Objective c NSNumber:numberWith n initWith

Objective c NSNumber:numberWith n initWith,objective-c,Objective C,有什么区别吗 [NSNumber numberWithInteger:] [NSNumber initWithIneger:]?initWithIneger:以“init”开头,因此需要释放此方法返回的对象 numberWithInteger:不以“init”或“new”或“alloc”开头,因此它返回的对象是自动删除的。你不需要释放它。如果你想保留它以备日后使用,你需要保留它。由+numberWithInteger:返回的数字将自动删除;-initWithInteger:返回的不是。(另外,在

有什么区别吗

[NSNumber numberWithInteger:]


[NSNumber initWithIneger:]?

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


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

+numberWithInteger:
返回的数字将自动删除;
-initWithInteger:
返回的不是。(另外,在发送
-initWithInteger:
之前,您需要
+alloc
NSNumber,而不是使用
+numberWithInteger:
')

检查:“init”不是告诉您保留计数正在增加的关键词之一:“alloc”、“new”、“copy”和“retain”是您正在考虑的。
NSNumber *foo = [[NSNumber alloc] initWithInteger:7]; // you must release foo when done
NSNumber *bar = [NSNumber numberWithInteger:7];       // bar is autoreleased