【问题标题】:"No visible interface" for existing method现有方法的“无可见界面”
【发布时间】:2023-03-24 23:55:01
【问题描述】:

这是我的 .h 文件:

@interface test1ViewController : UIViewController{}

    -(void)function1:(NSString *)param1:(NSString *)param2 ;
@end

这是我的 .m 文件:

- (void)viewDidLoad{
    [super viewDidLoad];

    // Do any additional setup after loading the view, typically from a nib.

    [self function1:@"333" param2:@"sadfas"];
}


-(void)function1:(NSString *)param1:(NSString *)param2 { }

这行代码给了我一个错误,指出:没有可见的@interface ....声明选择器'function1:param2

[self function1:@"333" param2:@"sadfas" ];

我尝试对此稍作修改,但无法使其正常工作。我该如何解决这个问题

【问题讨论】:

  • 这看起来不像是正确的多参数方法定义或声明。 (从 Smalltalk 推断,它应该类似于 - (void) function1: (NSString*) param1 withParam2: (NSString*) param2; 我说再次点击教程。
  • 嘿@BridgetCay,我注意到您从未接受任何问题的答案。如果您发现一个适合您的答案,您应该点击用户评分下的检查按钮,如下所示:meta.stackexchange.com/a/5235 由于您没有遵循本指南,人们对回答您的问题的反应会较慢。

标签: ios


【解决方案1】:

函数应该是

- (void)functionWithFirstParam:(NSString *)param1 andSecondParam:(NSString *)param2;

param1param2 是您要发送的变量。

因此,您可以像这样访问传递的字符串:

- (void)functionWithFirstParam:(NSString *)param1 andSecondParam:(NSString *)param2 {
    NSLog(@"Param1: %@, Param2: %@",param1, param2);
}

你会这样调用这个函数:

[self functionWithFirstParam:@"Hello" andSecondParam:@"World"];

【讨论】:

    【解决方案2】:

    正确的语法是:

    -(void)function1:(NSString *)param1 andParam2:(NSString *)param2;
    

    然后当你调用它时

    [self function1:@"333" andParam2:@"sadfas"];
    

    【讨论】:

      【解决方案3】:

      你在创建方法的语法上有错误

      创建方法如

      -(void)function1:(NSString *)param1 andAlsoWriteParam2:(NSString *)param2;
      

      在您的 .m 文件中添加方法,例如

      -(void)function1:(NSString *)param1 andAlsoWriteParam2:(NSString *)param2 
      {
        // your stuff;
      }
      

      和调用方法一样

      [self function1:@"333" andAlsoWriteParam2:@"ssdaf"]
      

      【讨论】:

      • 可能是编码语法错误?应该是 function1:andAlsoWriteParam2: 但我没有 -1
      • @JohnRiselvato - 我这样写是因为 OP 在 iOS 中是新的,所以最好理解 :)
      • @JohnRiselvato - 但它只是错字不重要:)
      【解决方案4】:
      -(void)function1:(NSString *)param1 secondParam:(NSString *)param2;
      

      【讨论】:

      • 您的回答会增加什么可能的价值?
      • 我只是给出了一个单行解决方案 - 没有写任何垃圾语句来解释错误的语法并描述如何使用正确的语法:)
      • 这家伙显然是刚刚开始编写objective-c。他会想了解为什么他的代码在细节上是错误的,以及如何修复它……细节。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-04-21
      • 1970-01-01
      • 2012-09-23
      • 1970-01-01
      • 1970-01-01
      • 2019-07-21
      • 2015-03-19
      相关资源
      最近更新 更多