我想将数组的值设置为标签。
数组声明:
//
// ViewController.h
// Cornell Notes
//
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController{
NSString *details[8][8];
NSString *subtitles[8];
}
我不被允许这样做:
self.label.text = subtitles[0];
我该怎么做?
答案 0 :(得分:0)
此:
@interface ViewController : UIViewController{
NSString *details[8][8];
NSString *subtitles[8];
}
应该是:
@interface ViewController : UIViewController
@property (strong, nonatomic) NSMutableArray *details;
@property (strong, nonatomic) NSMutableArray *subtitles;
你可以声明它与你的方式相似,但我相信这是当前首选的语法。其他人可能会纠正我。最重要的是我们声明NSMutableArray而不是NSString。你正在做C风格的声明,这些声明会有所不同。我选择NSMutableArray而不是NSArray,因为它看起来像你希望能够在运行时添加对象。
而且:
self.label.text = subtitles[0];
应该是:
if (!_subtitles) _subtitles = [NSMutableArray new];
[_subtitles insertObject:self.label.text atIndex:0];
这一行:
if (!_subtitles) _subtitles = [NSMutableArray new];
只是为了确保我们的_subtitles
词典存在,如果存在,我们确保它不会被覆盖。 [NSMutableArray new]
语法是我个人喜欢的,因为它看起来很干净;但是,许多人更喜欢[[NSMutableArray alloc]init]
。只是这样你就知道了。