我想将NSString
值传递给NSObject类的类方法:+(void)loadTableData:(myCompletion) compblock;
。所以我只能在类方法中使用类变量NSString *categoryID
。我在 .h 文件中声明它,试图让它也用于公共访问。但我尝试了很多方法,只能在下面声明。其他职位会给我警告。
#import <Foundation/Foundation.h>
typedef void(^myCompletion)(NSArray *);
NSString *categoryID;
@interface ThirdVCLoadTable : NSObject
+ (void)loadTableData:(myCompletion) compblock;
@end
然后问题是我仍然无法在我的视图控制器类中访问它。错误消息始终为:在“ThirdVCLoadTable”类型的对象上找不到属性“categoryID”,无论我尝试访问NSString *categoryID
。
例如,
ThirdVCLoadTable *load = [[ThirdVCLoadTable alloc] init];
load.categoryID = [NSString stringWithFormat:@"%li", (long)indexPath.row + 1];
答案 0 :(得分:0)
这不是班级的财产。试试
@property (copy, nonatomic) NSString * categoryID;
低于@interface
答案 1 :(得分:0)
在该类中声明一个属性,稍后您将从另一个视图调用该属性。
假设在viewcontrollerA中,在.h
中@property(copy,nonatomic)NSString * StrName;
在viewcontrollerB中,实现它:
viewcontrollerA *vc = [[viewcontrollerA alloc] initWithNib:@"viewcontrollerA" bundle:nil];
vc.StrName = @"XYZ";
[self pushViewController:vc animated:YES];
从中获得更多帮助:
How to use NSString from NSObject class in multiple Classes (View Controllers)
答案 2 :(得分:0)
第1步: 假设我的ClassName是Info。
Info.h file
@interface Info : NSObject
typedef void(^myCompletion)(NSArray *);
@end
@interface ThirdVCLoadTable : NSObject
@property (strong, nonatomic) NSString * categoryID;
+ (void)loadTableData:(myCompletion) compblock;
Info.m文件
+ (void)loadTableData:(myCompletion) compblock {
}
如果要在viewControllers中访问类方法而不是 你可以使用像
ThirdVCLoadTable* load = [[ThirdVCLoadTable alloc] init];
load.categoryID = [NSString stringWithFormat:@"%li", (long)indexPath.row + 1];