我有一个Stack来填充一系列视图。
$ npm install
npm WARN deprecated jade@1.11.0: Jade has been renamed to pug, please install the latest version of pug instead of jade
npm WARN deprecated node-uuid@1.4.7: use uuid module instead
npm WARN deprecated transformers@2.1.0: Deprecated, use jstransformer
npm WARN deprecated mongodb@1.4.12: Please upgrade to 2.2.19 or higher
npm WARN deprecated jade@0.26.3: Jade has been renamed to pug, please install the latest version of pug instead of jade
npm WARN deprecated to-iso-string@0.0.2: to-iso-string has been deprecated, use @segment/to-iso-string instead.
npm WARN deprecated minimatch@0.3.0: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
> kerberos@0.0.4 install /Users/pnash/projects/node-projects/marketing-notifications-node/node_modules/kerberos
> (node-gyp rebuild 2> builderror.log) || (exit 0)
CXX(target) Release/obj.target/kerberos/lib/kerberos.o
> bson@0.2.22 install /Users/pnash/projects/node-projects/marketing-notifications-node/node_modules/bson
> (node-gyp rebuild 2> builderror.log) || (exit 0)
CXX(target) Release/obj.target/bson/ext/bson.o
sms-notifications-node@1.0.0 /Users/pnash/projects/node-projects/marketing-notifications-node
├─┬ body-parser@1.17.1
│ ├── bytes@2.4.0
│ ├── content-type@1.0.2
│ ├─┬ debug@2.6.1
│ │ └── ms@0.7.2
│ ├── depd@1.1.0
│ ├─┬ http-errors@1.6.1
│ │ └── inherits@2.0.3
│ ├── iconv-lite@0.4.15
│ ├─┬ on-finished@2.3.0
│ │ └── ee-first@1.1.1
│ ├── qs@6.4.0
│ ├─┬ raw-body@2.2.0
│ │ └── unpipe@1.0.0
│ └─┬ type-is@1.6.14
│ ├── media-typer@0.3.0
│ └─┬ mime-types@2.1.14
│ └── mime-db@1.26.0
├─┬ chai@2.3.0
│ ├── assertion-error@1.0.0
│ └─┬ deep-eql@0.1.3
│ └── type-detect@0.1.1
├── connect-flash@0.1.1
├─┬ express@4.15.2
│ ├─┬ accepts@1.3.3
│ │ └── negotiator@0.6.1
│ ├── array-flatten@1.1.1
│ ├── content-disposition@0.5.2
│ ├── cookie@0.3.1
│ ├── cookie-signature@1.0.6
│ ├── encodeurl@1.0.1
│ ├── escape-html@1.0.3
│ ├── etag@1.8.0
│ ├── finalhandler@1.0.0
│ ├── fresh@0.5.0
│ ├── merge-descriptors@1.0.1
│ ├── methods@1.1.2
│ ├── parseurl@1.3.1
│ ├── path-to-regexp@0.1.7
│ ├─┬ proxy-addr@1.1.3
│ │ ├── forwarded@0.1.0
│ │ └── ipaddr.js@1.2.0
│ ├── range-parser@1.2.0
│ ├─┬ send@0.15.1
│ │ ├── destroy@1.0.4
│ │ └── mime@1.3.4
│ ├── serve-static@1.12.1
│ ├── setprototypeof@1.0.3
│ ├── statuses@1.3.1
│ ├── utils-merge@1.0.0
│ └── vary@1.1.0
├─┬ express-session@1.15.1
│ ├── crc@3.4.4
│ ├── on-headers@1.0.1
│ └─┬ uid-safe@2.1.4
│ └── random-bytes@1.0.0
├─┬ http-auth@2.4.11
│ ├─┬ apache-crypt@1.1.2
│ │ └── unix-crypt-td-js@1.0.0
│ ├── apache-md5@1.0.6
│ └── node-uuid@1.4.7
├─┬ jade@1.11.0
│ ├── character-parser@1.2.1
│ ├─┬ clean-css@3.4.25
│ │ ├─┬ commander@2.8.1
│ │ │ └── graceful-readlink@1.0.1
│ │ └─┬ source-map@0.4.4
│ │ └── amdefine@1.0.1
│ ├── commander@2.6.0
│ ├─┬ constantinople@3.0.2
│ │ └── acorn@2.7.0
│ ├─┬ jstransformer@0.0.2
│ │ ├── is-promise@2.1.0
│ │ └─┬ promise@6.1.0
│ │ └── asap@1.0.0
│ ├─┬ mkdirp@0.5.1
│ │ └── minimist@0.0.8
│ ├─┬ transformers@2.1.0
│ │ ├─┬ css@1.0.8
│ │ │ ├── css-parse@1.0.4
│ │ │ └── css-stringify@1.0.5
│ │ ├─┬ promise@2.0.0
│ │ │ └── is-promise@1.0.1
│ │ └─┬ uglify-js@2.2.5
│ │ ├─┬ optimist@0.3.7
│ │ │ └── wordwrap@0.0.3
│ │ └── source-map@0.1.43
│ ├─┬ uglify-js@2.8.8
│ │ ├── source-map@0.5.6
│ │ ├── uglify-to-browserify@1.0.2
│ │ └─┬ yargs@3.10.0
│ │ ├── camelcase@1.2.1
│ │ ├─┬ cliui@2.1.0
│ │ │ ├─┬ center-align@0.1.3
│ │ │ │ ├─┬ align-text@0.1.4
│ │ │ │ │ ├─┬ kind-of@3.1.0
│ │ │ │ │ │ └── is-buffer@1.1.4
│ │ │ │ │ ├── longest@1.0.1
│ │ │ │ │ └── repeat-string@1.6.1
│ │ │ │ └── lazy-cache@1.0.4
│ │ │ ├── right-align@0.1.3
│ │ │ └── wordwrap@0.0.2
│ │ ├── decamelize@1.2.0
│ │ └── window-size@0.1.0
│ ├── void-elements@2.0.1
│ └─┬ with@4.0.3
│ ├── acorn@1.2.2
│ └── acorn-globals@1.0.9
├─┬ mocha@2.5.3
│ ├── commander@2.3.0
│ ├─┬ debug@2.2.0
│ │ └── ms@0.7.1
│ ├── diff@1.4.0
│ ├── escape-string-regexp@1.0.2
│ ├─┬ glob@3.2.11
│ │ └─┬ minimatch@0.3.0
│ │ ├── lru-cache@2.7.3
│ │ └── sigmund@1.0.1
│ ├── growl@1.9.2
│ ├─┬ jade@0.26.3
│ │ ├── commander@0.6.1
│ │ └── mkdirp@0.3.0
│ ├── supports-color@1.2.0
│ └── to-iso-string@0.0.2
├─┬ mongoose@3.9.7
│ ├── async@0.9.0
│ ├── hooks@0.3.2
│ ├── kareem@0.0.4
│ ├─┬ mongodb@1.4.12
│ │ ├─┬ bson@0.2.22
│ │ │ └── nan@1.8.4
│ │ ├── kerberos@0.0.4
│ │ └─┬ readable-stream@2.2.3
│ │ ├── buffer-shims@1.0.0
│ │ ├── core-util-is@1.0.2
│ │ ├── isarray@1.0.0
│ │ ├── process-nextick-args@1.0.7
│ │ ├── string_decoder@0.10.31
│ │ └── util-deprecate@1.0.2
│ ├── mpath@0.1.1
│ ├── mpromise@0.5.4
│ ├─┬ mquery@1.0.0
│ │ └── debug@0.7.4
│ ├── ms@0.1.0
│ ├── muri@0.3.1
│ ├── regexp-clone@0.0.1
│ └── sliced@0.0.5
├─┬ morgan@1.8.1
│ └── basic-auth@1.1.0
└─┬ twilio@1.11.1
├── jwt-simple@0.1.0
├── q@0.9.7
├─┬ request@2.27.0
│ ├── aws-sign@0.3.0
│ ├── cookie-jar@0.3.0
│ ├── forever-agent@0.5.2
│ ├─┬ form-data@0.1.4
│ │ ├─┬ combined-stream@0.0.7
│ │ │ └── delayed-stream@0.0.5
│ │ └── mime@1.2.11
│ ├─┬ hawk@1.0.0
│ │ ├── boom@0.4.2
│ │ ├── cryptiles@0.2.2
│ │ ├── hoek@0.9.1
│ │ └── sntp@0.2.4
│ ├─┬ http-signature@0.10.1
│ │ ├── asn1@0.1.11
│ │ ├── assert-plus@0.1.5
│ │ └── ctype@0.5.3
│ ├── json-stringify-safe@5.0.1
│ ├── mime@1.2.11
│ ├── oauth-sign@0.3.0
│ ├── qs@0.6.6
│ └── tunnel-agent@0.3.0
├── scmp@0.0.3
└── underscore@1.8.3
这很好用。 如果我想用可变数组替换这个数组怎么办呢?
我尝试使用此代码进行“动态”堆栈视图,最后在简单数组中转换可变数组但不起作用:
_countViewArray = [[NSArray alloc] init];
_countViewArray = @[self.a.view,self.b.view,self.c.view];
_stackView = [NSStackView stackViewWithViews:_countViewArray];
如果我打印出可变数组,那么在consolle中:
_mutableCountViewArray = [[NSMutableArray alloc] init];
[_mutableCountViewArray addObject:@[self.a.view]];
if (caseCondition){
[_mutableCountViewArray addObject:@[self.b.view]];
}
[_mutableCountViewArray addObject:@[self.c.view]];
_countViewArray = [_mutableCountViewArray copy];
_stackView = [NSStackView stackViewWithViews:_countViewArray];
我该如何解决?
答案 0 :(得分:1)
问题是您要添加数组(包含单个视图)而不是视图...
请注意,@[x]
是一个文字表达式,用于定义包含NSArray
的{{1}}
这样一条线:
x
应该成为:
[_mutableCountViewArray addObject:@[self.a.view]];
(当然,这适用于您在接下来的几行中添加的每个对象......)
另外,作为旁注:
[_mutableCountViewArray addObject:self.a.view];
您的第一个代码段中的是多余的,因为您在下一行重新分配值...