在xCode中找不到方法定义

时间:2014-07-20 12:46:06

标签: ios objective-c xcode

使用xCode 5.1,Objective C

刚开始尝试使用Objective C,编写一个简单的程序,并得到一些警告: Method definition for "some method" not found...

我正在查看我的代码,我在实现文件(.m)中看到了方法 屏幕。

enter image description here

我知道 - 看到很多类似的问题:

  • Here - 信件案例的差异 - 检查一切正常
  • Here - 调用.m文件中不存在的方法 - 检查 - 存在
  • Here - 与上一个问题相同。问题
  • Here - 奇怪/非标准设置Apple - 一切正常
  • Here - 执行错误
  • Here - 错过参数,因此执行不正确
  • 和其他相同的错误......

所以根据这篇文章,我认为问题是或缺少声明/实现或某些语法错误

检查我的代码看起来一切正常。


声明 - 在.h文件中

//- mean non static method
//(return type) Method name : (type of var *) name of var
- (void)addAlbumWithTitle : (NSString *) title
//global name of var : (type of var *) local name of var
               artist : (NSString *) artist :
              summary : (NSString *) summary :
                price : (float) price :
      locationInStore : (NSString *) locationInStore;

在.m文件中实现

- (void)addAlbumWithTitle:(NSString *)title
               artist:(NSString *)artist
              summary:(NSString *)summary
                price:(float)price
      locationInStore:(NSString *)locationInStore {
Album *newAlbum = [[Album alloc] initWithTitle:title
                                        artist:artist 
                                       summary:summary 
                                         price:price  
                               locationInStore:locationInStore];
[self.albumList addObject:newAlbum];
}

我只是开始尝试使用xCode进行Objective C,但也许我错过了

1 个答案:

答案 0 :(得分:7)

语法不正确。对于此方法,您的.h应该如下所示(删除额外的冒号):

- (void)addAlbumWithTitle:(NSString *)title
               artist:(NSString *)artist
              summary:(NSString *)summary
                price:(float)price
      locationInStore:(NSString *)locationInStore;

Apple Docs:

  

如果您需要提供多个参数,则语法也是如此   与C不同。指定了C函数的多个参数   在括号内,用逗号分隔;在Objective-C中,   采用两个参数的方法的声明如下:

     

- (void)someMethodWithFirstValue:(SomeType)value1 secondValue:(AnotherType)value2;

     

在此示例中,value1和value2   是实现中用于访问提供的值的名称   当调用该方法时,就好像它们是变量一样。

请参阅documentation