2013-05-07 4 views
0

я получил цикл, но не может получить доступ к переменной из вне цикла:переменная доступа, которая лежит внутри для цикла

for (int i = 0, j = 0, k = 0, l = 0; i < [array1 count] && j < [array2 count] && k < [array3 count] && l < [array4 count]; i++ && j++ && k++ && l++) 
{ 

    NSDictionary *_myDict = [NSDictionary dictionaryWithObjectsAndKeys:[array1 objectAtIndex:i], @"Apples", [array2 objectAtIndex:j], @"Oranges", [array3 objectAtIndex:k], @"Grapes", [array4 objectAtIndex:l], @"Plums", nil]; 


} 

Доступ к нему внутри работ.

Я попробовал его с помощью метода singleton и instance, он все еще недоступен и всегда возвращает nil.

Я хотел бы иметь глобальную переменную, но не могу объявить ее внутри цикла.

+0

С какой переменной вы пытаетесь получить доступ? –

+0

спасибо за быстрый ответ, я пытаюсь получить доступ ко всему словарю _myDict. –

+0

объявить его вне цикла for? может это вам помочь? – Floris497

ответ

0
NSMutableArray *rows = [NSMutableArray array]; 
for (int i=0, j=0, k=0, l=0; 
    i < [array1 count] && j < [array2 count] && k < [array3 count] && l < [array4 count]; 
    i++, j++, k++, l++) 
{ 
    NSMutableDictionary *row = [NSMutableDictionary dictionary]; 
    [row setObject:[array1 objectAtIndex:i] forKey:@"Apples"]; 
    [row setObject:[array2 objectAtIndex:j] forKey:@"Oranges"]; 
    [row setObject:[array3 objectAtIndex:k] forKey:@"Grapes"]; 
    [row setObject:[array4 objectAtIndex:l] forKey:@"Plums"]; 
    [rows addObject:row]; 
} 

Теперь подключите массив arrayController к rows, установите его класс строки в NSMutableDictionary и использовать @ «Яблоки» и т.д. в переплетах колонке. Надеюсь, что это решает.

+0

Я хочу использовать NSPredicate на нем, и я использую привязки, но могу только сделать это с отфильтрованными результатами, как только я получу доступ к словарю ... –

+0

, и я успешно заполняю свой NSTableView, но не так с фильтрованным результаты, так как NSMutableDictionary _myDict пуст уже до любой фильтрации. –

+0

@JeremiahSmith С массивом 'rows', вы можете применить' NSPredicate' с '[rows filtersArrayUsingPredicate: предикат]'. Или задайте предикат 'arrayController', независимо от того, что вам нужно. – 2013-05-07 21:37:46

Смежные вопросы