Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iphonesdk:复制数组_Iphone - Fatal编程技术网

iphonesdk:复制数组

iphonesdk:复制数组,iphone,Iphone,我有一个数组: //current array NSMutableArray *arrayCurrentArray; //和索引 indexCurrentPage=1 阵列需要在运行时初始化,如下所示: arrayCurrentArray = [[NSMutableArray alloc] initWithArray:arrayBrotherPirateEnglish copyItems:YES]; indexCurrentPage++; if(indexCu

我有一个数组:

//current array
NSMutableArray *arrayCurrentArray;
//和索引 indexCurrentPage=1

阵列需要在运行时初始化,如下所示:

            arrayCurrentArray =
 [[NSMutableArray alloc]
 initWithArray:arrayBrotherPirateEnglish
 copyItems:YES];
indexCurrentPage++;

if(indexCurrentPage <= [arrayCurrentArray count]) {
    //next page to play             
    strFileName = [arrayCurrentArray objectAtIndex:indexCurrentPage]; 
    NSLog(@"next page filename %s ", strFileName);
    //set the player
    NSURL *url = [NSURL URLWithString:strFileName];
    [player setContentURL:url];
    //play
    [player play];      
}
NSString *strFileName;
以下是阵列的初始化方式:

arrayBrotherPirateEnglish=[NSArray arrayWithObjects:@“OBTP完整英文版” 带文本“,@“OBTP英语p1”,@“OBTP” 英文p2“, @“OBTP英语p3”,“OBTP英语p4”,“OBTP英语p5”, @“OBTP英语p6”,
@“OBTP英语p7”,“OBTP英语p8”,“OBTP英语p9”, @“OBTP英语p10”,
@“OBTP英语p11”,
零]

然后我有这样的代码:

            arrayCurrentArray =
 [[NSMutableArray alloc]
 initWithArray:arrayBrotherPirateEnglish
 copyItems:YES];
indexCurrentPage++;

if(indexCurrentPage <= [arrayCurrentArray count]) {
    //next page to play             
    strFileName = [arrayCurrentArray objectAtIndex:indexCurrentPage]; 
    NSLog(@"next page filename %s ", strFileName);
    //set the player
    NSURL *url = [NSURL URLWithString:strFileName];
    [player setContentURL:url];
    //play
    [player play];      
}
NSString *strFileName;
任何见解都值得赞赏。

这一行:

NSLog(@"next page filename %s ", strFileName);
这是不正确的
strFileName
是一个NSString;您需要使用“%@”格式说明符(而不是“%s”)将其打印出来。

此行:

NSLog(@"next page filename %s ", strFileName);

不正确。
strFileName
是一个NSString;您需要使用“%@”格式说明符(而不是“%s”)来打印它。

您的数组包含NSString对象,而不是C样式的“字符串”。您应该使用“%@”格式说明符而不是“%s”来记录它们:

NSLog(@"next page filename %@", strFileName);
您不会显示strFileName是如何声明的,但它应该是这样的:

            arrayCurrentArray =
 [[NSMutableArray alloc]
 initWithArray:arrayBrotherPirateEnglish
 copyItems:YES];
indexCurrentPage++;

if(indexCurrentPage <= [arrayCurrentArray count]) {
    //next page to play             
    strFileName = [arrayCurrentArray objectAtIndex:indexCurrentPage]; 
    NSLog(@"next page filename %s ", strFileName);
    //set the player
    NSURL *url = [NSURL URLWithString:strFileName];
    [player setContentURL:url];
    //play
    [player play];      
}
NSString *strFileName;
由于NSArray使用基于0的索引,因此也存在一个off by one错误。从0开始索引,循环条件应为:

if(indexCurrentPage < [arrayCurrentArray count])

这些都是明显的问题,应该有助于您取得一些进展。下次还可以包括堆栈跟踪的前几帧,因为它可能有一些好信息。

您的数组包含NSString对象,而不是C样式的“字符串”。您应该使用“%@”格式说明符而不是“%s”来记录它们:

NSLog(@"next page filename %@", strFileName);
您不会显示strFileName是如何声明的,但它应该是这样的:

            arrayCurrentArray =
 [[NSMutableArray alloc]
 initWithArray:arrayBrotherPirateEnglish
 copyItems:YES];
indexCurrentPage++;

if(indexCurrentPage <= [arrayCurrentArray count]) {
    //next page to play             
    strFileName = [arrayCurrentArray objectAtIndex:indexCurrentPage]; 
    NSLog(@"next page filename %s ", strFileName);
    //set the player
    NSURL *url = [NSURL URLWithString:strFileName];
    [player setContentURL:url];
    //play
    [player play];      
}
NSString *strFileName;
由于NSArray使用基于0的索引,因此也存在一个off by one错误。从0开始索引,循环条件应为:

if(indexCurrentPage < [arrayCurrentArray count])

这些都是明显的问题,应该可以帮助您取得一些进展。下次您还可以包括堆栈跟踪的前几帧,因为它可能有一些好的信息。

查看NSURL上的文档,了解您正在使用的方法

请关注此部分
初始化NSURL对象所用的字符串。必须符合RFC 2396。此方法根据RFC 1738和1808解析URLString。


根据您所掌握的信息,您似乎不符合RFC 2396的要求。请查看NSURL上的文档,了解您所使用的方法

请关注此部分
初始化NSURL对象所用的字符串。必须符合RFC 2396。此方法根据RFC 1738和1808解析URLString。


根据您所掌握的信息,您似乎不符合RFC 2396的要求,这是错误:2010-07-26 13:43:47.154 BookReaderJuly23[50904:207]***由于未捕获的异常“NSInvalidArgumentException”终止应用程序,原因:'***-[NSCFString objectAtIndex:]:无法识别的选择器发送到实例0x5533de0'这是前面的代码:strFileName=[arrayBrotherPirateEnglish objectAtIndex:2];NSLog(@“下一页文件名%@”,strFileName);这意味着您正在向NSString对象而不是NSArray发送objectAtIndex:消息。这可能意味着您将NSArray变量重新分配给了NSString,或者存在内存管理问题(过早释放数组等)如果你真的有内存问题,那么使用僵尸工具可能会帮助你找到内存问题,但你似乎正在为一些基本原则而挣扎,因此你可能希望有更有经验的人来检查你的整个程序,帮助你找到常见错误。这是错误:2010-07-26 13:43:47.154 BookReaderJuly23[50904:207]***由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:'***-[NSCFString objectAtIndex:]:无法识别的选择器发送到实例0x5533de0'这是前面的代码:strFileName=[arrayBrotherPirateEnglish objectAtIndex:2];NSLog(@“下一页文件名%@”,strFileName);这意味着您正在向NSString对象而不是NSArray发送objectAtIndex:消息。这可能意味着您将NSArray变量重新分配给了NSString,或者存在内存管理问题(过早释放数组等)如果你真的有内存问题,那么使用僵尸工具可能会帮助你找到内存问题,但看起来你正在为一些基本原则而挣扎,所以你可能想让更有经验的人查看你的整个程序,帮助你找到常见错误。