2017-04-25 79 views
0

当我在.h文件中定义我的块,总会有一个问题:未知类型名称“的NSString”当我定义了一个块

未知类型名称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 

但是,为什么是我第一次块确定,第二份报告是一个错误?

回答

1

需要声明块如下

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

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

如果您要导入UIKit,则不需要导入Foundation –

3

您定义#import <UIKit/UIKit.h>(在.h文件)以上块,所以没有导入的NSString,你应该削减块上面定义的#import <UIKit/UIKit.h>。然后

-1

位置报关进口的UIKit如下:

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

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

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

在Xcode的最新版本中,你可以简单地指定

#import <Foundation/NSString.h> 

任何NS基础类可以根据需要进口。