我有一个班级 -
class myObject: NSObject {
dynamic var objectId : String?
dynamic var name : String?
dynamic var lastName : String?
dynamic var age : String?
}
在我的其他课程中,我正在获得这个类的属性 -
self.myArray.append(myObject.name!)
我可以通过手动设置myObject.name
来获取.name
的值,但如果我的myObject
类中有数百个属性,我想创建一个可以创建的方法使用如下变量返回我班级的属性:
let myVar = "name"
self.myArray.append(myObject.myVar)
它应附加属性name
但是收到错误
value of myObject has no member `myVar`
我知道为什么会收到错误
所以我的问题是如何通过使用变量来获取对我的类的属性的访问权限说:getValue(String)应该返回我的类的属性:我甚至不知道从哪里开始一条线索或提示将非常感激,
如果我的问题不够明确,请让我知道我会解决它
谢谢
答案 0 :(得分:1)
您还应该看看// initialise a dictionary
var dict = NSMutableDictionary(objects: ["first", "second", 42], forKeys: ["String1", "String2", "Int1"])
// add a new attribute
dict.addEntriesFromDictionary(NSDictionary(object: "New thing", forKey: "String3") as [NSObject : AnyObject])
// access the data
let firstString = dict.valueForKey("String1")
let firstInt = dict.valueForKey("Int1")
// update the data
dict.setValue(99, forKey: "Int1")
let newValue = dict.valueForKey("Int1")
,这是一个快速示例,展示了它的工作原理
if [ ! -f /data/cmts_dhcp_link_map_*.csv ];
then
cd data
curr=`pwd`
echo $curr
bad_file=`find . -type f -not -name 'dhcp_map_*.csv' -a -type f -not -name 'cmts_map_*csv' -a -type f -not -name 'cmts_dhcp_link_map_*.csv'`
BAD_FILE_LINK=$(basename "$bad_file")
echo $BAD_FILE_LINK
echo "Bad File Found please check bad folder"
mv $BAD_FILE_LINK ../bad/$BAD_FILE_LINK.bad
fi
cd ..
if [ ! -f dhcp_map_*.csv ];
then
cd data
curr=`pwd`
echo $curr
bad_file=`find . -type f -not -name 'dhcp_map_*.csv' -a -type f -not -name 'cmts_map_*csv' -a -type f -not -name 'cmts_dhcp_link_map_*.csv'`
BAD_FILE_DHCP=$(basename "$bad_file")
echo $BAD_FILE_DHCP
echo "Bad File Found please check bad folder"
mv $BAD_FILE_DHCP ../bad/$BAD_FILE_DHCP.bad
fi
cd ..
if [ ! -f cmts_map_*csv ];
then
cd data
curr=`pwd`
echo $curr
bad_file=`find . -type f -not -name 'dhcp_map_*.csv' -a -type f -not -name 'cmts_map_*csv' -a -type f -not -name 'cmts_dhcp_link_map_*.csv'`
BAD_FILE_CMTS=$(basename "$bad_file")
echo $BAD_FILE_CMTS
echo "Bad File Found please check bad folder"
mv $BAD_FILE_CMTS ../bad/$BAD_FILE_CMTS.bad
fi
cd ..
答案 1 :(得分:1)
我可能错了,但正如我在评论中已经说过的那样,最好使用Dictionary并在其中存储值。此外,如果您想使用点符号访问某些值,但仍然可以通过字符串获取它们,您只需创建一个属性并覆盖setter和getter
class MyClass {
var properties = [String: AnyObject]()
var someProperty: String? {
get {
return properties["someProperty"] as? String
}
set {
properties["someProperty"] = newValue
}
}
通过这种方式,您可以object.someProperty
和object.properties["someProperty"]
答案 2 :(得分:0)
你可以像下面那样制作对象数组
var arrayOfObjects = [myObject]
然后设置对象值
var firstObject:myObject
myObject.name = "Your name"
myObject.age = "Your age"
...
然后将第一个对象追加到arrayOfObjects
arrayOfObject.append(firstObject)
你可以访问它
print("First Object's name: \(arrayOfObjects[0].name)")