嘿,我在一个switch语句中有这些coredata对象,我正试图安全地展开它们,但是我不知道在这个场景中如何做到这一点。
override func collectionView(collectionView: JSQMessagesCollectionView!, messageDataForItemAtIndexPath indexPath: NSIndexPath!) -> JSQMessageData! {
let msg : Mesages = fetchedResultsControler.objectAtIndexPath(indexPath) as! Mesages
switch (msg.fromID!) {
case(friend!.id!) : let messageData = JSQMessage(senderId: friend!.id!, displayName: friend!.id!, text: msg.text)
return messageData
default :
let messageData = JSQMessage(senderId: userdefaults.objectForKey("FBid") as! String, displayName: userdefaults.objectForKey("FBid") as! String, text: msg.text)
return messageData
}
}
我需要安全地打开
msg.fromID!
和friend!.id!
var friend: Friend?
extension Friend {
@NSManaged var id: String?
}
extension Mesages {
@NSManaged var fromID: String?
@NSManaged var text: String?
}
最佳答案
if (friend?.id) != nil {
switch (msg.fromID) {
case(friend!.id!)? :
_ = friend!.id
default :
_ = "FBid"
}
}
对于switch部分,如果msg.fromID不是可选的,则可以通过
case value?
->进行匹配。对于friend.id,我想您可能需要在交换机外检查它。也许其他人能给你一个更好的解决方案。
关于ios - 如何安全地解包我的coredata对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39420519/