Maximum amount of objects in NSArray

徘徊边缘 提交于 2019-11-27 06:54:49

问题


What is the largest amount of objects I can put in my NSArray?


回答1:


The NSArray initWithCapacity method, takes an unsigned int as an argument. So whatever the maximum value of an unsigned int is on your platform may be the theoretical limit. However the actual limit is more likely to depend on the amount of memory you have available.




回答2:


Have you tried to find out? ;)

NSMutableArray * a = [[NSMutableArray alloc] init];
NSUInteger i = 0;
@try {
  while (1) {
     [a addObject:@"hi"];
     i++;
  }
} @catch (NSException * e) {
  NSLog(@"added %llu elements", i);
}



回答3:


In most cases concerning the upper limits of programming structures and the like:
"If you have to ask, you're probably doing it wrong" - TheDailyWTF.com




回答4:


Probably more than your RAM can handle.




回答5:


NSNotFound is defined as NSIntegerMax (this value changes if you are on a 32bit or 64bit system)

NSNotFound is also the result you get when you do a

[nsarray indexOfObject:obj]

and no object is found.

If you do not run out of space/memory I would say that this would be your limit.

http://developer.apple.com/library/mac/#documentation/cocoa/reference/foundation/Miscellaneous/Foundation_Constants/Reference/reference.html




回答6:


NSArray is a container of pointers to other objects. Its maximum capacity is defined by NSUInteger (on the latest versions of the available OSs):

When building 32-bit applications, NSUInteger is a 32-bit unsigned integer. A 64-bit application treats NSUInteger as a 64-bit unsigned integer

Therefore, whatever the size of NSUInteger is on a given device is the maximum number of object pointers it can contain. However, as Eimantas alluded to in his answer, this isn't the same as "how many objects can it hold" because this depends on available memory. You may not have enough RAM available at a given moment to allocate an array with six billion slots for example ...



来源:https://stackoverflow.com/questions/2155462/maximum-amount-of-objects-in-nsarray

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!