错误“没有针对选择器的已知类方法Hello:'”在定制的框架 [英] Error "No known class method for selector 'Hello:'" in custom-made framework

查看:110
本文介绍了错误“没有针对选择器的已知类方法Hello:'”在定制的框架的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我为公司制定了一个框架,我已经完成了所有的代码。我现在正试图将其打包成一个框架。作为一个测试,我使用这个名字的方法: - (void)Hello:(NSString *)worldText;



当我尝试在框架使用此代码调用它 [CompanyMobile Hello:@World]; ,我得到一个编译错误, / p>


选择器'Hello:'没有已知的类方法



$ b b

我的框架中的.m如下:

  #importHello.h

@implementation Hello

- (id)init
{
self = [super init];
if(self){
//初始化代码在这里。
}

return self;
}

- (void)Hello:(NSString *)world {

}

@end



我的框架中的.h如下:

  #import< Foundation / Foundation.h> 

@interface Hello:NSObject
- (void)Hello:(NSString *)world;
@end

我的申请中的.h

  // 
// FMWK_TESTViewController.h
// FMWK TEST
//
//创建者Sam on 6/15/11。
//版权所有2011 __MyCompanyName__。版权所有。
//

#import< UIKit / UIKit.h>
#import< companyMobile / Hello.h>
@interface FMWK_TESTViewController:UIViewController

@end

在我的应用程序中

  // 
// FMWK_TESTViewController.m
// FMWK TEST
//
//由Sam Baumgarten创建于6/15/11。
//版权所有2011 __MyCompanyName__。版权所有。
//

#importFMWK_TESTViewController.h

@implementation FMWK_TESTViewController

- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
//释放所有未使用的缓存数据,图像等。
}

#pragma mark - 查看生命周期

- (void)viewDidLoad
{
[Badgeville你好:@Sam] ;
[super viewDidLoad];
//在加载视图之后执行任何其他设置,通常来自nib。
}

- (void)viewDidUnload
{
[super viewDidUnload];
//释放主视图的任何保留的子视图。
//例如self.myOutlet = nil;
}

- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
}

- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
}

- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated]
}

- (void)viewDidDisappear:(BOOL)animated
{
[super viewDidDisappear:animated];
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
//对于支持的方向返回YES
return YES;
}

@end


解决方案>

您定义 Hello:作为实例方法,但是您要向类发送 Hello:。要定义一个类方法,你写 +(void)Hello:而不是 - (void)Hello: / p>

I am making a framework for a company and I have completed all the code. I'm now trying to package it into a framework. As a test I made a method with this name: -(void)Hello:(NSString *)worldText;

When I try to call it in the application with the framework using this code [CompanyMobile Hello:@"World"];, I'm getting a compiler error which says

No known class method for selector 'Hello:'

The .m in my framework is as follows:

#import "Hello.h"

@implementation Hello

- (id)init
{
    self = [super init];
    if (self) {
        // Initialization code here.
    }

    return self;
}

-(void)Hello:(NSString *)world {

}

@end

The .h in my framework is as follows:

#import <Foundation/Foundation.h>

@interface Hello : NSObject
-(void)Hello:(NSString *)world;
@end

The .h in my application

//
//  FMWK_TESTViewController.h
//  FMWK TEST
//
//  Created by Sam on 6/15/11.
//  Copyright 2011 __MyCompanyName__. All rights reserved.
//

#import <UIKit/UIKit.h>
#import <companyMobile/Hello.h>
@interface FMWK_TESTViewController : UIViewController

@end

The .m in my application

//
//  FMWK_TESTViewController.m
//  FMWK TEST
//
//  Created by Sam Baumgarten on 6/15/11.
//  Copyright 2011 __MyCompanyName__. All rights reserved.
//

#import "FMWK_TESTViewController.h"

@implementation FMWK_TESTViewController

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Release any cached data, images, etc that aren't in use.
}

#pragma mark - View lifecycle

- (void)viewDidLoad
{
    [Badgeville Hello:@"Sam"];
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}

- (void)viewDidUnload
{
    [super viewDidUnload];
    // Release any retained subviews of the main view.
    // e.g. self.myOutlet = nil;
}

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
}

- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
}

- (void)viewWillDisappear:(BOOL)animated
{
    [super viewWillDisappear:animated];
}

- (void)viewDidDisappear:(BOOL)animated
{
    [super viewDidDisappear:animated];
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    // Return YES for supported orientations
    return YES;
}

@end

解决方案

You defined Hello: as an instance method, but you're sending Hello: to the class. To define a class method, you write + (void)Hello: rather than - (void)Hello:.

这篇关于错误“没有针对选择器的已知类方法Hello:'”在定制的框架的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆