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);并显示正确的值