Ios 我已经在自定义class.h文件中声明了我的实例方法,但仍然找不到该方法
使用xCode 6.1.1,目标C 我是Objective C的初学者,现在正在尝试将一些其他方法扩展到现有的iOS4应用程序项目 在我实现了新方法并由我的ViewController_2调用它之后,它工作起来很奇怪:调用了该方法,但它没有收到参数。但是,如果我在现有的ViewController中调用相同的方法,它就可以正常工作 有人能告诉我我的课有什么问题吗 这是我的密码: //我的自定义类Ios 我已经在自定义class.h文件中声明了我的实例方法,但仍然找不到该方法,ios,objective-c,xcode,Ios,Objective C,Xcode,使用xCode 6.1.1,目标C 我是Objective C的初学者,现在正在尝试将一些其他方法扩展到现有的iOS4应用程序项目 在我实现了新方法并由我的ViewController_2调用它之后,它工作起来很奇怪:调用了该方法,但它没有收到参数。但是,如果我在现有的ViewController中调用相同的方法,它就可以正常工作 有人能告诉我我的课有什么问题吗 这是我的密码: //我的自定义类 AnimationObjectContainer.h #import <Foundation/
AnimationObjectContainer.h
#import <Foundation/Foundation.h>
@interface AnimationObjectContainer : NSObject
...
- (void)flashImagesForSecs:(CGFloat)seconds;
...
@end
//现有项目视图控制器ViewController.m
AnimationObjectContainer *container = [[AnimationObjectContainer alloc] init];
[container flashImagesForSecs:30]; // Succeed.
//我的自定义ViewController,继承的ViewController.hViewController_2.h
#import <UIKit/UIKit.h>
#import "ViewController.h"
@interface ViewController_2 : ViewController <UIGestureRecognizerDelegate>
...
@end
我自己回答
我检查并修改了这些东西,然后它就工作了。但警告信息仍然存在。我不知道如何摆脱它
传递给方法的参数变为奇异值
秒=(CGFloat)0.000000000000000000000000420389539
秒=(整数)30
我不确定这里发生了什么,但它确实起了作用。
不过,警告消息“未找到实例方法”仍然存在。您需要在ViewController_2.m文件中导入“AnimationObjectContainer.h”。每个.m文件都是单独编译的,编译器只在每个.m文件中看到您导入的内容。谢谢您的评论!但是我已经在ViewController_2.m中导入了“AnimationObjectContainer.h”,问题仍然存在。更新了代码。在任何情况下,
ViewController_2.m
的编译器都没有看到您对-flashimagesforecs:
的方法声明(或者您在方法名称中有一个输入错误)。一个常见的问题是循环进口。追溯ViewController2.m导入的所有.h文件,并查找循环.h导入。使用前向类声明来最小化.h文件中的#导入
#在@implementation
部分之前导入,而不是在其内部。您好,matt。谢谢提醒!我更正了ViewController_2.m文件,但问题仍然存在。。。谢谢你,达伦。我将检查循环问题。这是因为文本30在默认情况下是int,您应该使用30.0来获得浮点文本
#import <UIKit/UIKit.h>
#import "ViewController.h"
@interface ViewController_2 : ViewController <UIGestureRecognizerDelegate>
...
@end
#import "ViewController_2.h"
#import "AnimationObjectContainer.h"
@implementation ViewController_2
...
AnimationObjectContainer *container = [[AnimationObjectContainer alloc] init];
// Warning displayed here: Instance method '-flashImagesForSecs:' not found(return type defaults to 'id')
[container flashImagesForSecs:30]; // Succeed but output: 2015-02-09 10:28:28.959 Fomm Panel[2728:1765749] flashImagesForSecs: is called. seconds = 0.000000
...
@end