Objective-C显示阵列

Objective-C显示阵列,objective-c,nsmutablearray,nslog,viewdidload,Objective C,Nsmutablearray,Nslog,Viewdidload,我已经创建了一个名为myArray的NSMutableArray,其中我使用SQL语句插入了三个变量。 一个变量是字符串,另两个是双精度变量。 然后在viewDidLoad中,我想显示数组 具体而言,我使用了: - (void)viewDidLoad { NSLog(@"%@",myArray); [super viewDidLoad]; } 但它会显示“”“等等 我认为问题在于myArray包含两种格式(string和double) 代码需要什么来显示数组的

我已经创建了一个名为
myArray
NSMutableArray
,其中我使用SQL语句插入了三个变量。 一个变量是字符串,另两个是双精度变量。 然后在
viewDidLoad
中,我想显示数组

具体而言,我使用了:

- (void)viewDidLoad  {  
    NSLog(@"%@",myArray);  
    [super viewDidLoad];  
}  
但它会显示
“”“
等等

我认为问题在于
myArray
包含两种格式(string和double)


代码需要什么来显示数组的可读数据?

由于您有不同类型的数据,您应该自己打印出来

这将为您提供与所需内容类似的输出:

for(id element in myArray) {
    NSLog(@"%@", [element description]);
}

这是一个有趣的输出。NSObject描述通常提供的信息不仅仅是对象的物理地址。当代码到达NSLog时,您可能会遇到myArray不再是有效NSArray的问题。同样重要的是,要将double包装到NSNumber中以插入数组。

您的意思是类似于for(myArray中的NSString*name){NSLog(@“%@”,name);}的内容从您所说的,数组包含“一个字符串和另外两个double”。我认为这意味着一个NSString和两个NSNumber。在这种情况下,描述消息是NSObject的一部分,NSString和NSNumber显然都是从NSObject派生的。使用您所说的将起作用,因为它实际上只调用描述消息。在这一点上,数组中的任何对象,无论它实际上是否为NSString,都将响应描述。如果您不想使用'id',至少要使用NSObject以避免以后情况发生变化时发生任何事故;NSString*aname=data.Name;NSLog(@“%@”,aname);并显示正确的值