我在superview上放了一个名为myView的视图,之后我编写了myView = nil,但是没有从superview中删除,而且还有一个像myView的视图出现在superview中,请帮帮我并告诉我原因。
答案 0 :(得分:2)
您的问题是为什么myView = nil
不会从超级视图中移除视图(因此,为什么它不会解除分配视图)。
这非常简单,当您viewA addSubview:viewB
viewA
创建从viewB
到viewB = nil
的引用时。
因此,当您执行viewA
时,仍然会有viewB
到ARC
的指针,因此[viewB removeFromSuperview]
不会释放视图。
这就是为什么你应该调用import tensorflow as tf
import numpy as np
def add_layer(input):
v2 = tf.Variable(tf.random_normal([2, 2], dtype=tf.float32, name='v2'))
tf.add_to_collection('h0_v2',v2)
output=tf.matmul(input,v2)
return output
x1=tf.placeholder(tf.float32)
outputs=add_layer(x)
tf.add_to_collection('outputs', outputs)
saver = tf.train.Saver()
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
x1=np.random.random([2, 2])
print(sess.run(outputs,feed_dict={x:x1}))
save_path = saver.save(sess, './model.ckpt')
print("model saved in file:", save_path)
来删除指针。
答案 1 :(得分:0)
请先使用[myView removeFromSuperView];