这个语法在Objective-C中意味着什么?

Nei*_*ton 4 objective-c

考虑以下:

- (id)initWithTitle:(NSString *)newTitle
     boxOfficeGross:(NSNumber *)newBoxOfficeGross
            summary:(NSString *)newSummary;
Run Code Online (Sandbox Code Playgroud)

这是什么意思?我已经猜到它会返回id,并且需要三个参数,但语法的每个部分是什么意思?我来自Ruby/JS背景,我觉得这个语法有点难以掌握.

Dav*_*ong 5

它是一个调用的实例方法(即,不是静态或"类"方法)initWithTitle:boxOfficeGross:summary:,它返回一个类型的对象id(泛型对象).它需要三个参数:String对象,Number对象和另一个String对象.

你这样调用它:

NSNumber * gross = [NSNumber numberWithInteger:1878025999]
Movie * avatar = [[Movie alloc] initWithTitle:@"Avatar"
                               boxOfficeGross:gross
                                      summary:@"Pocahontas in the 22nd century"];
//or you can do it all on one line, like so:
Movie * avatar = [[Movie alloc] initWithTitle:@"Avatar" boxOfficeGross:gross summary:@"Pocahontas in the 22nd century"];
Run Code Online (Sandbox Code Playgroud)