Основной Цель C Синтаксис Вопрос - PullRequest
0 голосов
/ 13 января 2011

Может ли кто-нибудь подтвердить мои подозрения в этой строке кода.

NSUInteger newPath[] = {[indexPath section],0};

Я почти уверен, что это массив C NSUIntegers. Я прав насчет этого? Вы можете даже сделать массивы C объектов Objective C?

Вот код в контексте:

-(UITableViewCellEditingStyle)tableView:(UITableView *) tableViewEditingStyleForRowAtIndexPath:(NSIndexPath*)indexPath{

if ([self isToManyRelationshipSection:[indexPath section]]) {
    NSUInteger newPath[] = {[indexPath section],0};
    NSIndexPath *row0IndexPath = [NSIndexPath indexPathWithIndexes:newPath length:2];

    NSString *rowKey = [rowKeys nestedObjectAtIndexPath:row0IndexPath];
    NSString *rowLabel = [rowLabels nestedObjectAtIndexPath:row0IndexPath];
    NSMutableSet *rowSet = [managedObject mutableSetValueForKey:rowKey];//!!!: to-many?
    NSArray *rowArray = [NSArray arrayByOrderingSet:rowSet byKey:rowLabel ascending:YES];

    if ([indexPath row] >= [rowArray count]) {
        return UITableViewCellEditingStyleInsert;
    }

    return UITableViewCellEditingStyleDelete;
}
return UITableViewCellEditingStyleNone;

Ответы [ 3 ]

3 голосов
/ 13 января 2011

Я почти уверен, что это массив C NSUIntegers.Я прав насчет этого?

Да, конечно.

Можете ли вы даже сделать массивы C объектов Objective C?

Вы можете.Например, это массив из двух NSString *:

NSString *myStrings[] = {@"one", @"two"};

Это полезно?Иногда, но почти всегда выгодно использовать NSArray, если вам нужен массив объектов.

3 голосов
/ 13 января 2011

Да, вы правы. Однако ...

NSUInteger newPath[] = {[indexPath section],0};
NSIndexPath *row0IndexPath = [NSIndexPath indexPathWithIndexes:newPath length:2];

Я бы настоятельно не рекомендовал бы вам использовать этот формат для создания NSIndexPath, который предназначен для использования в UITableView. Есть удобный способ сделать это намного проще:

NSIndexPath *row0IndexPath = [NSIndexPath indexPathForRow:0 inSection:[indexPath section]];
0 голосов
/ 13 января 2011

NSUInteger не является объектом Objective-c.Это typedef для целого числа без знака.В зависимости от вашей платформы это может быть int или long.Но это не объект.Так что у вас просто есть массив целых чисел.

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