【发布时间】:2011-10-04 16:45:13
【问题描述】:
我一直在阅读在 Mac 上学习 Objective C 这本书, 我正在查看以下示例代码:
#import <Foundation/Foundation.h>
int main (int argc, const char * argv[])
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSFileManager *manager;
manager = [NSFileManager defaultManager];
NSString *home;
home = [@"~" stringByExpandingTildeInPath];
NSDirectoryEnumerator *direnum;
direnum = [manager enumeratorAtPath: home];
NSMutableArray *files;
files = [NSMutableArray arrayWithCapacity: 42];
// “Slow” enumeration
NSString *filename;
while ( filename = [direnum nextObject] )
{
if ([[filename pathExtension] isEqualTo: @”jpg”])
{
[files addObject: filename];
} // end if
} // end while
NSEnumerator *filenum;
filenum = [files objectEnumerator];
while ( filename = [filenum nextObject] )
{
NSLog(@”%@”, filename);
}
[pool drain];
return 0;
} // main
对我来说最突出的是while ( filename = [filenum nextObject] ),我想,'这实际上是一个条件语句吗?'我想对[filenum nextObject] 的调用是一个带有文件名或nil 的NSString,但是我们如何在评估它时执行filename =?您能否指出正确的文档,以便更清楚地解释这里的可能性?
【问题讨论】:
标签: objective-c conditional while-loop