Clang LLVM 1.0 Ошибка цель-c - PullRequest
       7

Clang LLVM 1.0 Ошибка цель-c

0 голосов
/ 23 октября 2011

Я начинающий разработчик.Я и остановился с этой ошибкой о:

Clang LLVM 1.0 Error
Expected ':'

line:  [pipe fileHandleForReading availableData]

Кто-нибудь может мне помочь?Заранее спасибо.

- (NSInteger)sizeOfItemAtPath:(NSString*)path {
    BOOL isdir;
    [[NSFileManager defaultManager] fileExistsAtPath:path isDirectory:&isdir];
    if (isdir) {
        NSPipe *pipe = [NSPipe pipe];
        NSTask *t = [[[NSTask alloc] init] autorelease];
        [t setLaunchPath:@"/usr/bin/du"];
        [t setArguments:[NSArray arrayWithObjects:@"-k", @"-d", @"0", path, nil]]; 

        [t setStandardOutput:pipe];
        [t setStandardError:[NSPipe pipe]]; 
        [t launch];
        [t waitUntilExit];

        NSString *sizeString = [[[NSString alloc] initWithData:[[pipe fileHandleForReading availableData] encoding:NSASCIIStringEncoding] autorelease];
        sizeString = [[sizeString componentsSeparatedByString:@" "] objectAtIndex:0];
        BOOL bytes;
        bytes = [sizeString longLongValue]*1024;
    }
    else {
        BOOL bytes;
        bytes = [[[NSFileManager defaultManager] attributesOfItemAtPath:path error:nil] fileSize];
    }
    BOOL bytes;
    return bytes;
}

Ответы [ 2 ]

3 голосов
/ 23 октября 2011

Вам не хватает ]: должно быть

[[pipe fileHandleForReading] availableData]

Вся строка должна выглядеть следующим образом:

NSString *sizeString = [[[NSString alloc] initWithData:[[pipe fileHandleForReading] availableData] encoding:NSASCIIStringEncoding] autorelease];

Кроме того, ваш метод будет возвращать мусор.Это потому, что вы определили bytes три раза: один раз в ветви if, один раз в ветви else и один раз в теле включающего метода.Возвращаемое значение будет взято из последнего, но это инициализировано.Мало того, вы используете неправильный тип: это должен быть NSInteger bytes;, а не BOOL bytes;.Вам нужно поместить определение в начало метода и удалить все другие определения, переменная может существовать только один раз.

0 голосов
/ 23 октября 2011

Попробуйте это:

[[pipe fileHandleForReading] availableData]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...