Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.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
Iphone 用Objective C编写for循环_Iphone_Objective C_Ios_Xcode_Cocoa Touch - Fatal编程技术网

Iphone 用Objective C编写for循环

Iphone 用Objective C编写for循环,iphone,objective-c,ios,xcode,cocoa-touch,Iphone,Objective C,Ios,Xcode,Cocoa Touch,我对用Objective C编写for循环有疑问。我可以在传统的C for循环中执行相同的循环,但是我正在尝试学习Objective C。这是我的问题。 listdata是一个可变数组,包含ofi_vc_modal_ab_user_info对象的对象,我想将列表数据的每封电子邮件与电子邮件进行比较,直到列表数据计数并找到其位置,如果找到,我想从列表数据中删除该对象 for (ofi_vc_modal_ab_user_info *loc_obj in listData) {

我对用Objective C编写for循环有疑问。我可以在传统的C for循环中执行相同的循环,但是我正在尝试学习Objective C。这是我的问题。
listdata是一个可变数组,包含ofi_vc_modal_ab_user_info对象的对象,我想将列表数据的每封电子邮件与电子邮件进行比较,直到列表数据计数并找到其位置,如果找到,我想从列表数据中删除该对象

    for (ofi_vc_modal_ab_user_info *loc_obj in listData)
    {
        if (strcasecmp(loc_obj->email, email) == 0) {
           // What need to do here.
        }
    }

如何在这里继续。。。感谢您的帮助:)

您只需使用C的
即可

事实上,在为(集合中的e)
使用
时,对迭代的集合进行变异是一个错误

我希望下面的代码能解释你想要什么。如果你需要更多的帮助,请多解释一下


编辑:如果您使用的是
NSMutableArray
,则不需要对象的索引。您可以直接删除我编辑的代码中提到的对象。

BornCoder我如何删除索引中的对象?是的,谢谢,那么justin是如何说这是一个错误的,我在苹果的一个文档中看到了类似的方法。您的意思是它给出了错误吗?它不应该给出任何错误。请解释它给出了什么样的错误。根据Justin的评论,请检查他的评论,在我的情况下,它工作正常。当你为(ofi_vc_modal_ab_user_info*loc_obj in listData)
执行
时,你不能从
列表数据中删除对象,这不是一个好方法。。。错误Justin我已经按照Born和Prince的建议做了,它看起来对我的案例有效。@user1587011如果BornCoder的方法对你有效,请随意接受BornCoder的答案。我知道你已经有了一个被接受的答案,但你应该看看“枚举…”。。。“带块”方法现在可用于大多数集合对象。苹果公司每年在WWDC上告诉我们,这样做的结果是代码更少,面积也更快。
BOOL foundObject = NO; 
ofi_vc_modal_ab_user_info *loc_found_obj = nil; 
for (ofi_vc_modal_ab_user_info *loc_obj in listData)
{
    if (strcasecmp(loc_obj->email, email) == 0) {
       // Set your flag here
       loc_found_obj = loc_obj;
        foundObject = YES;
        break;
    }
}
if(foundObject) {
// Do your stuffs as object is found
// Your found object is in loc_found_obj
 [listData removeObject:loc_found_obj];
}