Objective c 从NSMutableArray打印字符串对象

Objective c 从NSMutableArray打印字符串对象,objective-c,Objective C,我在对象中存储了一些字符串,并将这些对象添加到NSMutableArray中。现在我想打印数组中每个元素的字符串。很明显,我做错了什么。我将回顾这些基础知识,但我希望有人能解释如何打印字符串而不是元素地址 /** interface **/ @property (nonatomic, copy) NSString*myNumber; -(void)setNumber: (NSString*) randomNumber; /** implementation **/ @synthesize

我在对象中存储了一些字符串,并将这些对象添加到NSMutableArray中。现在我想打印数组中每个元素的字符串。很明显,我做错了什么。我将回顾这些基础知识,但我希望有人能解释如何打印字符串而不是元素地址

/** interface **/
@property (nonatomic, copy) NSString*myNumber;

-(void)setNumber: (NSString*) randomNumber;


/** implementation **/

@synthesize myNumber;

-(void) setNumber:(NSString *)randomNumber
{
    myNumber = randomNumber;    
} 

/**main**/

Fraction * aFrac = [[Fraction alloc] init];
[aFrac setNumber:@"5/6"];
Fraction * bFrac = [[Fraction alloc] init];
[bFrac setNumber:@"2/3"];

NSMutableArray * myArray = [[NSMutableArray alloc] init];
[myArray addObject:aFrac];
[myArray addObject:bFrac];

int i;
for(i = 0; i<2; ++i)
{
    id myArrayElement  = [myArray objectAtIndex:i];
    NSLog(@"%@", myArrayElement);
}

for(i = 0; i<2; ++i)
{
    NSLog(@"%@", myArray[i]);    
}
/**接口**/
@属性(非原子,复制)NSString*myNumber;
-(void)集合编号:(NSString*)随机编号;
/**实施**/
@合成myNumber;
-(无效)集合编号:(NSString*)随机编号
{
myNumber=随机数;
} 
/**主要**/
分数*aFrac=[[分数分配]初始];
[aFrac设置编号:@“5/6”];
分数*bFrac=[[分数分配]初始];
[bFrac设置编号:@“2/3”];
NSMutableArray*myArray=[[NSMutableArray alloc]init];
[myArray addObject:aFrac];
[myArray addObject:bFrac];
int i;

对于(i=0;i当您将自定义对象传递给NSLog时,您必须覆盖该对象中的-(NSString)description方法

所以在你的分数类中,如果你像这样简单地重写这个函数

- (NSString*)description
{
  return self.myNumber;
}
那应该可以注销你想要的

在存储字符串时,我可能会考虑从number重命名该属性


希望这对您有所帮助

当您将自定义对象传递给NSLog时,您必须覆盖该对象中的-(NSString)description方法

所以在你的分数类中,如果你像这样简单地重写这个函数

- (NSString*)description
{
  return self.myNumber;
}
那应该可以注销你想要的

在存储字符串时,我可能会考虑从number重命名该属性


希望这对您有所帮助

当您将自定义对象传递给NSLog时,您必须覆盖该对象中的-(NSString)description方法

所以在你的分数类中,如果你像这样简单地重写这个函数

- (NSString*)description
{
  return self.myNumber;
}
那应该可以注销你想要的

在存储字符串时,我可能会考虑从number重命名该属性


希望这对您有所帮助

当您将自定义对象传递给NSLog时,您必须覆盖该对象中的-(NSString)description方法

所以在你的分数类中,如果你像这样简单地重写这个函数

- (NSString*)description
{
  return self.myNumber;
}
那应该可以注销你想要的

在存储字符串时,我可能会考虑从number重命名该属性


希望这有帮助

我猜您创建的
分数
类型有一个名为number的NSString属性或方法(与
-setNumber:
方法匹配),在这种情况下,您将使用以下代码打印它:

NSLog(“%@,[myArrayElement编号]);

或者,对于第二个循环:


NSLog(“%@,[myArray[i]number]);

我猜您创建的
分数类型有一个名为number的NSString属性或方法(与
-setNumber:
方法匹配),在这种情况下,您将使用以下代码打印它:

NSLog(“%@,[myArrayElement编号]);

或者,对于第二个循环:


NSLog(“%@,[myArray[i]number]);

我猜您创建的
分数类型有一个名为number的NSString属性或方法(与
-setNumber:
方法匹配),在这种情况下,您将使用以下代码打印它:

NSLog(“%@,[myArrayElement编号]);

或者,对于第二个循环:


NSLog(“%@,[myArray[i]number]);

我猜您创建的
分数类型有一个名为number的NSString属性或方法(与
-setNumber:
方法匹配),在这种情况下,您将使用以下代码打印它:

NSLog(“%@,[myArrayElement编号]);

或者,对于第二个循环:


NSLog(“%@,[myArray[i]number]);

在您的代码中,两个for循环的含义仅相同,请尝试下面的方法

 for(i = 0; i<2; ++i)
{
id myArrayElement  = [myArray objectAtIndex:i];
NSLog(@"%@", myArrayElement.number);
}

for(i = 0; i<2; ++i)
{
NSLog(@"%@", myArray[i].number);    
}

for(i=0;i在您的代码中,两个for循环的含义仅相同,请尝试下面的方法

 for(i = 0; i<2; ++i)
{
id myArrayElement  = [myArray objectAtIndex:i];
NSLog(@"%@", myArrayElement.number);
}

for(i = 0; i<2; ++i)
{
NSLog(@"%@", myArray[i].number);    
}

for(i=0;i在您的代码中,两个for循环的含义仅相同,请尝试下面的方法

 for(i = 0; i<2; ++i)
{
id myArrayElement  = [myArray objectAtIndex:i];
NSLog(@"%@", myArrayElement.number);
}

for(i = 0; i<2; ++i)
{
NSLog(@"%@", myArray[i].number);    
}

for(i=0;i在您的代码中,两个for循环的含义仅相同,请尝试下面的方法

 for(i = 0; i<2; ++i)
{
id myArrayElement  = [myArray objectAtIndex:i];
NSLog(@"%@", myArrayElement.number);
}

for(i = 0; i<2; ++i)
{
NSLog(@"%@", myArray[i].number);    
}

用于(i=0;i您期望的是什么?两个for循环以两种不同的方式执行完全相同的操作。您期望它们打印不同的内容吗?此外,如果您编辑问题以显示您获得的输出和您期望的输出,这将很有帮助。一旦我无法获得第一个for循环来打印我想要的内容,我尝试了second循环。我希望两者都能打印出相同的内容。@jasoncoo它们实际上并不相等jason;)对于NSArray,它们通常相等,但调用不同的方法,因此如果自定义数组类,它们可以不同(它们不会!但它们可以:D)@Daij Djan是的,但他没有使用其他自定义类,他使用的是
NSArray
,因此它们在这里是相等的。好吧,是挑剔--抱歉--(无论如何,会调用不同的方法;)你期望什么?两个for循环以两种不同的方式完成完全相同的事情。你期望它们打印不同的东西吗?另外,如果你编辑你的问题以显示你得到的输出和你期望的输出,这将是很有帮助的。一旦我无法获得第一个for循环来打印我想要的内容,我尝试了第二个循环。我希望两者都能打印出相同的东西。@jasoncoo它们实际上并不相等jason;)对于NSArray,它们通常相等,但调用的方法不同,因此如果自定义数组类不同,它们可能会不同(不会!但它们可以:D)@Daij Djan是的,但他没有使用其他自定义类,他使用的是
NSArray
,因此它们在这里是相等的。好吧,是挑剔--抱歉--(无论如何,会调用不同的方法;)你期望什么?两个for循环以两种不同的方式完成完全相同的任务。你期望它们打印不同的内容吗?另外,如果你编辑你的问题以显示你得到的输出和你期望的输出,这将很有帮助。我们