0

我以为这个计数会返回 26,但它返回零。az 是未初始化的 UIImageViews。你现在有什么问题吗?

 NSMutableArray *letters = [[NSMutableArray alloc]initWithObjects: a,b,c,d,e,f,g,self.h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z, nil];


 NSLog(@"%d",(int)[letters count]);
4

2 回答 2

8

initWithObjects:将添加任何对象,直到找到第一个nil. 正如您所说,您的图像视图没有初始化,它们都是零。因此第一个为零。因此没有添加任何对象。因此 0 是正确的计数。

您只需将实例化对象添加到数组中。

于 2013-09-23T21:06:31.690 回答
1

问题:initWithObjects 是如何工作的?答案:它插入所有对象,直到它达到零。你真正做的是以下内容:

[[NSMutableArray alloc]initWithObjects: nil, nil, nil, nil, nil, nil, nil, nil, nil, nil];

你得到了答案。

反正。即使那行得通。根本没有任何好处。即使图像被初始化,它也与数组无关。因为您只是在其上插入了 nil 而不是对任何内容的引用,所以它是 nil。

你必须先初始化那些。

于 2013-09-23T21:12:32.563 回答