2009-11-10 2 views
0

Хорошо, поэтому я думаю, что я делаю это правильно. Я новичок в объективе-C, поэтому я не уверен в синтаксисе ... У меня есть набор кода, который мне нужно вызвать несколько раз, из разных файлов. Поэтому я создал новый класс, в котором есть метод, который я назову и передам ему значения, которые ему нужны.Как передать словарь функции

Поскольку я передаю разные значения, я поместил их в словарь и решил просто передать словарь. Вот этот код:

NSNumber *testNum = [NSNumber numberWithInt:varMoney]; 


    NSMutableDictionary *dictionary = [[NSMutableDictionary alloc] init]; 
    [dictionary setObject:@"OMG, Object 1!!!!" forKey:@"1"]; 
    [dictionary setObject:@"Number two!" forKey:@"2"]; 
    [dictionary setObject:testNum forKey:@"3"]; 

Этот код создает переменный тест, а затем помещает его в словарь «словарь». Что все работает, у меня есть мой хороший маленький словарь. Однако теперь мне нужно создать класс и его метод, который получит словарь и что-то с ним сделает.

Это мой файл заголовка класса:

#import <UIKit/UIKit.h> 


@interface EndOfTurnObjC : UIView { 

} 

@end 

И это файл реализации:

#import "EndOfTurnObjC.h" 


@implementation EndOfTurnObjC 


- (id)initWithFrame:(CGRect)frame { 
    if (self = [super initWithFrame:frame]) { 
     // Initialization code 
    } 
    return self; 
} 



- (void)dealloc { 
    [super dealloc]; 
} 


@end 

Я не создал ни реального кода, потому что я не знаю, как делать проход. Мне нужно создать функцию (Method?) В классе, которая будет иметь словарь, имеет параметр, а затем вернет словарь.

Я также не знаю, как назвать такую ​​функцию, потому что она находится в классе. Итак, вопросы: 1: Как определить метод в классе, чтобы принять словарь в качестве параметра (а затем, возможно, некоторый пример кода, чтобы вытащить один из объектов в словаре, поэтому я могу быть уверен, что он работает)

2: Как вернуть словарь в конце метода?

3: Как я могу назвать этот метод в классе из другого класса? (Я знаю, что это связано с созданием объекта класса предметов и вызовом метода объекта ... Я думаю, но я не уверен в синтаксисе.)

Пожалуйста, включите код для 3 файлов (заголовок, реализации и другого класса, из которого я звоню). Большое вам спасибо, я уже некоторое время работаю над этой конкретной проблемой.

+1

«Пожалуйста, включите URL-адрес для 3-х файлов» - я не типичный человек «google it» или «no homework» или «rtfm», но вы очень много просите у нас, доказательство усилий. Все это не так сложно, и мы будем рады помочь вам, но я уверен, что многие из нас хотели бы хотя бы увидеть ваши попытки в первую очередь. –

+0

Я мог бы дать вам исходный код для моего приложения, но это не совсем идея. Я проделал большую работу над своей программой, но я не могу найти никакой документации по этому вопросу. Я не хочу, чтобы люди тоже делали для меня работу, но после работы над этой проблемой в течение 2 недель я дошел до конца своих возможностей. –

ответ

1

В заголовке :

-(NSMutableDictionary *) doSomethingWithDictionary:(NSMutableDictionary *) aDict; 

в реализации:

-(NSMutableDictionary *) doSomethingWithDictionary:(NSMutableDictionary *) aDict{ 
    //do something with the dictionary 
    return aDict; 
} 

Для вызова метода:

NSMutableDictionary *returnDict=[EndOfTurnObjC doSomethingWithDictionary:dictionary]; 

Обратите внимание, что в вопросе хорошего дизайна вы не хотели бы, чтобы передать изменяемый словарь вокруг, как знак. Это требует неприятностей. Вместо этого передайте статические словари и получите еще один словарь.

Вы также не должны передавать данные в UIView. Вместо этого ваш UIViewController должен обработать данные и затем заполнить элементы интерфейса представления, если это необходимо.

4

Яблоко The Objective-C Programming Language является хорошей и красивой ссылкой для синтаксиса Objective-C. То, что вы хотите, - это обычный метод, который использует NSDictionary как параметр. Так, как указано в этом документе:

Сообщение с единственным аргументом добавляет двоеточие (:) к имени селектора и помещает аргумент сразу после двоеточия.Эта конструкция называется ключевым словом; ключевое слово заканчивается двоеточием, и аргумент следует двоеточие, как показано в следующем примере:

[myRectangle setWidth:20.0]; 

Так вызова метода пройти dictionary будет выглядеть так:

[someObject setAttributes:dictionary]; 
0

если вы просто хотите, чтобы делать вещи в словарь у просто

- (Недействительными) changeMyDictionary: (NSMutableDictionary *) dictionary_

{

[dictionary_ doStuff]; 
    .... 
    ... 

}

нет необходимости для возврата словаря.