所以我挣扎了很长时间才找到关于此的文档并且失败了。问题更多的是"它如何运作"而不是解释一段代码。
麻烦:
xObject x = new xObject();
yObject y = new yObject( x );
x.add( y );
xObject
的位置:
private ArrayList<yObject> yObjects;
public void add( yObject _y ) {
this.yObjects.add( _y );
}
而且yObject
有:
private xObject x;
public yObject( xObject _x ) {
this.x = _x;
}
现在是否可以在x内的ArrayList中使用y
s?
尝试通过测试来解决问题是不可能的,因为每当我尝试时,我似乎没有必要的脑力不会混淆(为什么我希望在这里比我更聪明的人可能能够帮忙)。
答案 0 :(得分:3)
var Saveddata: [UIImage] = []
@IBAction func getAlbum(_ sender: AnyObject) {
if (self.textEntercode.text == "")
{
let alert = UIAlertController(title: "No Entered value", message: "Please enter value", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.cancel, handler: nil));
//event handler with closure
present(alert, animated: true, completion: nil);
}
else {
//-------------Get Data from Parse Server-------------------
var photo = textEntercode.text
let query = PFQuery(className: "Photostable10")
query.whereKey("photo", equalTo: photo)
//query.whereKey("Score", greaterThan: 1000)
query.findObjectsInBackground(block: { (objects : [PFObject]?, error: Error?) -> Void in
if error == nil {
for object in objects! {
if let userPicture = object.value(forKey: "photo") {
let userPicture = object.value(forKey: "photo")! as! PFFile
userPicture.getDataInBackground({ (imageData: Data?, error: Error?) -> Void in
let image = UIImage(data: imageData!)
if image != nil {
self.Saveddata.append(image!)
}
})
}
}
}
})
self.tableview.reloadData()
} //else close
}
func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "PostCell")!
cell.textLabel!.text = "Post"
cell.imageView?.image = Saveddata[indexPath.row]
return cell
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.Saveddata.count
}
不包含yObjects:它包含yObjects的引用。实际上包含任何对象的唯一事情就是堆。
与您将朋友的姓名放在手机上的“联系人”列表中的方式没有什么不同,她可以将您的姓名放在手机的联系人列表中。没有悖论,因为您的联系人列表中没有一个包含实际人员:列表中只包含有关如何抓住人员的信息。同样,Java变量和Java容器实际上并不包含对象:它们只包含查找这些对象并与之交互所需的信息。
答案 1 :(得分:1)
是的,你可以在x里面玩y,因为它引用了对象。因此,如果您在x中更新y,则x之外的y也将更新。