NSMutableArray可以存储每个NSObject,但是我可以提到NSMutableArray只能存储我的项目,例如,只存储NSString的NSMutableArray吗? 我记得java数组可以做到这一点,目标C数组可以做类似的事情吗?谢谢。
答案 0 :(得分:1)
Objective-C在NSArray / NSMutableArray上没有这种通用约束。因此,您有两个解决方案:
答案 1 :(得分:0)
你可以这样试试 -
NSMutableArray *arr = [[[NSMutableArray alloc] init] autorelease];
if([obj isKindOfClass:[NSString class]])
[arr addObject:obj];
这样您最终只会向您的arr添加NSString
。
答案 2 :(得分:0)
不是默认情况下,不是。 NSArray及其可变对应物只存储指向obj-c对象的指针。这些对象可以是任何类型。你应该确保只有NSString才能进入你的阵列。
您可以潜在地继承NSArray并覆盖addObject:方法,以便在尝试添加非NSString对象时抛出异常。