Отдельная статическая строка NSString для загрузки в массив - PullRequest
0 голосов
/ 02 ноября 2011

Итак, следуя примеру Apple DocInteraction здесь Я добавил static NSString, чтобы определить некоторые предварительно загруженные документы. Теперь мне нужно загрузить их в NSArray в методе viewDidLoad. Если я помещаю его в оператор for(), он говорит «результат выражения не используется», и я знаю, что могу решить его с помощью documents[indexPath.row], но это метод viewDidLoad. Так как же для каждого статического NSString для загрузки в NSArray?

КОД (РЕДАКТИРОВАТЬ):

//Before @implementation

static NSString* documents[] =
{   @"Musette.pdf",
    @"Minore.pdf",
    @"Cantata.pdf",
    @"Finalé.pdf"
};
//In viewDidLoad

    if ( _icons == nil )
{        

    _icons = [[NSMutableArray alloc] init];
    UIBezierPath * path = [UIBezierPath bezierPathWithRoundedRect: CGRectMake(0, 0, 200.0, 324.0)
                                                     cornerRadius: 18.0];
    for (NSUInteger i = 1; i <= 4; i++){

        UIGraphicsBeginImageContext( CGSizeMake(200.0, 324.0) );

        // clear background
        [[UIColor clearColor] set];
        UIRectFill( CGRectMake(0.0, 0.0, 200.0, 324.0) );

        // fill the rounded rectangle
        [path fill];

        UIImage *image = [UIImage imageNamed:@"ClearImage.png"];

        UIGraphicsEndImageContext();

        // put the image into our list
        [_icons addObject: image];
    }
}

[_gridView reloadData];

Ответы [ 3 ]

1 голос
/ 02 ноября 2011

Я не уверен, что полностью понимаю, о чем вы спрашиваете:

for(NSString * myStr in _icons) {

Это не сработает, потому что _icons == ноль. Почему вы не можете создать строки до этой строки?

Вы также должны сделать это NSArray.

1 голос
/ 02 ноября 2011

C-массивы не поддерживаются модификацией for-for оператора for в Objective-C. Итак, у вас есть 2 варианта:

  1. использовать обычный цикл для выписки

    для (int idx = 0; idx

  2. Создайте пользовательский подкласс NSEnumerator и используйте его ... однако, я полагаю, это будет большой нагрузкой для этого случая

0 голосов
/ 02 ноября 2011

Это не имеет никакого смысла:

if ( _icons == nil )
    {        
        for(NSString * myStr in _icons) {

        _icons = [[NSMutableArray alloc] init];

Вам нужно немного отступить назад и понять, что вы делаете.

Добавлено

Тем не менееРабота.Что не так с этой картинкой ??

    _icons = [[NSMutableArray alloc] init];
    UIBezierPath * path = [UIBezierPath bezierPathWithRoundedRect: CGRectMake(0, 0, 200.0, 324.0)
                                                     cornerRadius: 18.0];
                for(NSString * myStr in _icons) {
        UIGraphicsBeginImageContext( CGSizeMake(200.0, 324.0) );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...