Iphone 用Objective C编写for循环
我对用Objective C编写for循环有疑问。我可以在传统的C for循环中执行相同的循环,但是我正在尝试学习Objective C。这是我的问题。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) {
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];
}