在iphone中的performSelectorOnMainThread中出现问题

Nit*_*tin 0 iphone

我这样做了


[(OfficeLinQViewController*)sharedManager.m_o  performSelectorOnMainThread:@selector(findLocalListing::)
                                                               withObject:(folderList,path) 
                                                            waitUntilDone:NO];
Run Code Online (Sandbox Code Playgroud) 但问题是在findLocalListing函数中,两个参数路径都保存不了folderList.

Mat*_*uch 5

再看一下这个withObject:部分.它表示withObject,而不是withObjects.您只能将一个参数传递给选择器.

我通常用这样的包装器方法解决这些问题.

[(OfficeLinQViewController*)sharedManager.m_o performSelectorOnMainThread:@selector(findLocalListingWithArgumentArray:)withObject:[NSArray arrayWithObjects:folderList,path, nil] waitUntilDone:NO];

- (void)findLocalListingWithArgumentArray:(NSArray *)argArray {
    [self findLocalListing:[argArray objectAtIndex:0] inPath:[argArray objectAtIndex:1]];
}
Run Code Online (Sandbox Code Playgroud)

哦,你应该将findLocalListing ::重命名为有用的东西.

  • @dean请参阅performSelectorOnMainThread的文档:...`此方法保留接收器和arg参数,直到执行选择器. (2认同)