我定义块时未知的类型名称'NSString'

时间:2017-04-25 06:36:22

标签: ios objective-c block typedef

当我在.h文件中定义我的块时,出现了一个问题:

  

未知类型名称NSString

我的代码如下:

typedef void(^CancelBlock)();
typedef void(^ConfirmBlck)(NSString *); // this line comes the error


#import <UIKit/UIKit.h>


@interface LMLUpspringView : UIView

@property (nonatomic, copy) CancelBlock cancelBlock;
@property (nonatomic, copy) ConfirmBlck confirmBlock;


@end

但是,为什么我的第一个块正常,第二个报告出错?

4 个答案:

答案 0 :(得分:3)

您在#import <UIKit/UIKit.h>(在.h文件中)上方定义了块,因此没有导入NSString,您应该在块定义之上切割#import <UIKit/UIKit.h>

答案 1 :(得分:1)

你需要声明阻止如下

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>

    typedef void(^ConfirmBlck)(NSString * string); 

答案 2 :(得分:0)

在xcode的最新版本中,您只需指定

即可
#import <Foundation/NSString.h>

可以根据需要导入任何NS Foundation类。

答案 3 :(得分:-1)

位置声明uikit导入然后按照:

// declare
@property(nonatomic,strong)void(^ConfirmBlck)(NSString * string); 

// define
[self setConfirmBlck:^(NSString *indexpVal) { }];

// call 
if (self.ConfirmBlck) {
    self.ConfirmBlck(selectedVal);
}