我以为这个计数会返回 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]);
我以为这个计数会返回 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]);
initWithObjects:
将添加任何对象,直到找到第一个nil
. 正如您所说,您的图像视图没有初始化,它们都是零。因此第一个为零。因此没有添加任何对象。因此 0 是正确的计数。
您只需将实例化对象添加到数组中。
问题:initWithObjects 是如何工作的?答案:它插入所有对象,直到它达到零。你真正做的是以下内容:
[[NSMutableArray alloc]initWithObjects: nil, nil, nil, nil, nil, nil, nil, nil, nil, nil];
你得到了答案。
反正。即使那行得通。根本没有任何好处。即使图像被初始化,它也与数组无关。因为您只是在其上插入了 nil 而不是对任何内容的引用,所以它是 nil。
你必须先初始化那些。