我不确定我在这里缺少什么,但是它对我“看起来”正确。
我的视图控制器顶部有以下两个变量:
var itemSpecifics: ItemSpecifics!
var itemSpecificsArray = [ItemSpecifics]()
我对API进行了调用,并在调用成功后执行以下操作:
self.itemSpecifics = ItemSpecifics()
self.itemSpecificsArray.removeAll()
这是我要获取信息并将其添加到itemSpecifics的区域。
if let getItemSpecifics = item["ItemSpecifics"] as? NSDictionary {
if let getNameValueList = getItemSpecifics["NameValueList"] as? NSArray {
print("game value list count \(getNameValueList.count)")
for i in 0..<getNameValueList.count {
if let getName = getNameValueList[i] as? NSDictionary {
if let itemName = getName["Name"] as? String {
print(itemName)
self.itemSpecifics._itemSpecificName = itemName
}
if let getValue = getName["Value"] as? NSArray {
let itemValue = getValue[0] as? String
self.itemSpecifics._itemSpecificValue = itemValue!
print("-- \(itemValue!)")
}
}
//End The Condition Information
self.itemSpecificsArray.append(self.itemSpecifics)
}
}
}
因此,它可以正确打印。
Professionally Graded
-- Not Graded
Sport
-- Baseball-MLB
Product
-- Lot
Player
-- Derek Jeter
Team
-- New York Yankees
Card Manufacturer
-- Topps
League
-- Major Leagues
Era
-- Modern (1981-Now)
Original/Reprint
-- Original
但是,当我这样做时:
for i in 0..<self.itemSpecificsArray.count {
print(self.itemSpecificsArray[i].itemSpecificName)
print("** \(self.itemSpecificsArray[i].itemSpecificValue)")
}
它打印以下内容:
Original/Reprint
** Original
Original/Reprint
** Original
Original/Reprint
** Original
Original/Reprint
** Original
Original/Reprint
** Original
Original/Reprint
** Original
Original/Reprint
** Original
Original/Reprint
** Original
Original/Reprint
** Original
这是我关于ItemSpecifics的课程。
class ItemSpecifics {
var _itemSpecificName: String!
var _itemSpecificValue: String!
var itemSpecificName : String {
if _itemSpecificName == nil {
_itemSpecificName = ""
}
return _itemSpecificName
}
var itemSpecificValue : String {
if _itemSpecificValue == nil {
_itemSpecificValue = ""
}
return _itemSpecificValue
}
}
我错过了什么?
答案 0 :(得分:2)
您只有一个void Main()
{
IList<Customer> AllCustomers;
IList<Hotel> Hotels;
var reg = from h in Hotels
join c in AllCustomers on h.HotelRegistration equals c.Name
select h;
}
class Customer
{
public int ID { get; set; }
public string Name { get; set; }
public string description { get; set; }
}
class Hotel
{
public int ID { get; set; }
public string HotelRegistration { get; set; }
public string description { get; set; }
}
实例-您不断更新该实例的属性并将其添加到数组中,因此最后,您的数组拥有对该实例的多个引用,并且一个实例具有您分配的最后一个值。
您可以使代码更加“敏捷”-使用ItemSpecifics
而不是类,这会带来不可变性;通常,您不应该使用这种形式的“ _”私有属性;您可以将属性设为只读,但使用结构则不需要任何方式。
此外,除非不可避免,否则不要在Swift中使用struct
基础类。
NS...