热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Swift不能通过下标分配:下标只是获取

如何解决《Swift不能通过下标分配:下标只是获取》经验,为你挑选了2个好方法。

我对Swift语法相当新,并且我的代码"无法通过下标分配:下标仅获取",我收到此错误

这是从行: friendDictionary[(friendUID as? String)!] = ["name": friendsData!["name"]]

任何关于正确方法的建议都会非常有帮助.

  func getFriendsUIDs() {

        if FBSDKAccessToken.currentAccessToken() == nil {

            print("failed to start graph request")
            return

        }else{
        }


        if FBSDKAccessToken.currentAccessToken() != nil {
        }

let parameters = ["fields": "name, id, picture"]
FBSDKGraphRequest(graphPath: "/me/friends", parameters: parameters).startWithCompletionHandler {
(NSURLConnection, result, requestError) in
let friendIds = result["id"] as? NSDictionary
let friendsData = friendIds!["data"] as? [NSDictionary]

        var ref: FIRDatabaseReference!
        ref = FIRDatabase.database().reference()
        ref.child("users").child((FIRAuth.auth()?.currentUser?.uid)!).child("friendUIDs").observeEventType(.Value, withBlock: { (snapshot) in
            self.FriendUIDs = NSArray()
            self.FriendUIDs = (snapshot.value as? NSArray)!
            print(self.FriendUIDs)
            var friendDictiOnary= NSDictionary()
            for friendUID in self.FriendUIDs {
                friendDictionary[(friendUID as? String)!]  = ["name": friendsData!["name"]]
            }

            self.fetchFriendFeed(friendDictionary)
        }) { (error) in
            print(error.localizedDescription)
        }
}

}



func fetchFriendFeed(friendDictionary: NSDictionary) {


var ref: FIRDatabaseReference!
ref = FIRDatabase.database().reference()

for friendUID in FriendUIDs {

    ref.child("users").child(friendUID as! String).child("Agenda").observeEventType(.ChildAdded, withBlock: { (snapshot) in

        print(snapshot)
        if let dictiOnary= snapshot.value as? [String: AnyObject] {
            let friendPost = FriendPost()
            friendPost.picture = friendDictionary[friendUID as! String]? ["picture"] as? String
            friendPost.activity = dictionary["activity"] as? String
            friendPost.date = dictionary["date"] as? String
            friendPost.time = dictionary["time"] as? String
            friendPost.friendname = friendDictionary[friendUID as! String]?  ["name"] as? String
            self.friendPosts.append(friendPost)

            dispatch_async(dispatch_get_main_queue(), {
                self.collectionView?.reloadData()

matt.. 14

与Swift无关.您已经选择使用Objective-C,实际上是通过制作friendDictionaryNSDictionary.NSDictionary是不可变的; 你不能分配或以任何方式改变它.这只是关于Objective-C的一个事实.Swift var声明对这个事实没有任何影响.

一个更好的选择,因为你在Swift中编写,将使用Swift字典,这是[AnyHashable:Any]()(在Swift 3中).当你与Objective-C交谈时,这将与NSDictionary交换,但它会给你一个可变字典,因为你(正确地)声明了它var.



1> matt..:

与Swift无关.您已经选择使用Objective-C,实际上是通过制作friendDictionaryNSDictionary.NSDictionary是不可变的; 你不能分配或以任何方式改变它.这只是关于Objective-C的一个事实.Swift var声明对这个事实没有任何影响.

一个更好的选择,因为你在Swift中编写,将使用Swift字典,这是[AnyHashable:Any]()(在Swift 3中).当你与Objective-C交谈时,这将与NSDictionary交换,但它会给你一个可变字典,因为你(正确地)声明了它var.



2> 小智..:

你尝试过使用NSMutableDictionary吗?这解决了我的问题.


推荐阅读
  • 本文介绍了在C#中SByte类型的GetHashCode方法,该方法用于获取当前SByte实例的HashCode。给出了该方法的语法和返回值,并提供了一个示例程序演示了该方法的使用。 ... [详细]
  • STL迭代器的种类及其功能介绍
    本文介绍了标准模板库(STL)定义的五种迭代器的种类和功能。通过图表展示了这几种迭代器之间的关系,并详细描述了各个迭代器的功能和使用方法。其中,输入迭代器用于从容器中读取元素,输出迭代器用于向容器中写入元素,正向迭代器是输入迭代器和输出迭代器的组合。本文的目的是帮助读者更好地理解STL迭代器的使用方法和特点。 ... [详细]
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • Oracle seg,V$TEMPSEG_USAGE与Oracle排序的关系及使用方法
    本文介绍了Oracle seg,V$TEMPSEG_USAGE与Oracle排序之间的关系,V$TEMPSEG_USAGE是V_$SORT_USAGE的同义词,通过查询dba_objects和dba_synonyms视图可以了解到它们的详细信息。同时,还探讨了V$TEMPSEG_USAGE的使用方法。 ... [详细]
  • JDK源码学习之HashTable(附带面试题)的学习笔记
    本文介绍了JDK源码学习之HashTable(附带面试题)的学习笔记,包括HashTable的定义、数据类型、与HashMap的关系和区别。文章提供了干货,并附带了其他相关主题的学习笔记。 ... [详细]
  • Java程序设计第4周学习总结及注释应用的开发笔记
    本文由编程笔记#小编为大家整理,主要介绍了201521123087《Java程序设计》第4周学习总结相关的知识,包括注释的应用和使用类的注释与方法的注释进行注释的方法,并在Eclipse中查看。摘要内容大约为150字,提供了一定的参考价值。 ... [详细]
  • Android工程师面试准备及设计模式使用场景
    本文介绍了Android工程师面试准备的经验,包括面试流程和重点准备内容。同时,还介绍了建造者模式的使用场景,以及在Android开发中的具体应用。 ... [详细]
  • 本文介绍了Java中Hashtable的clear()方法,该方法用于清除和移除指定Hashtable中的所有键。通过示例程序演示了clear()方法的使用。 ... [详细]
  • Android自定义控件绘图篇之Paint函数大汇总
    本文介绍了Android自定义控件绘图篇中的Paint函数大汇总,包括重置画笔、设置颜色、设置透明度、设置样式、设置宽度、设置抗锯齿等功能。通过学习这些函数,可以更好地掌握Paint的用法。 ... [详细]
  • 本文介绍了一道经典的状态压缩题目——关灯问题2,并提供了解决该问题的算法思路。通过使用二进制表示灯的状态,并枚举所有可能的状态,可以求解出最少按按钮的次数,从而将所有灯关掉。本文还对状压和位运算进行了解释,并指出了该方法的适用性和局限性。 ... [详细]
  • linux进阶50——无锁CAS
    1.概念比较并交换(compareandswap,CAS),是原⼦操作的⼀种,可⽤于在多线程编程中实现不被打断的数据交换操作࿰ ... [详细]
  • 第七课主要内容:多进程多线程FIFO,LIFO,优先队列线程局部变量进程与线程的选择线程池异步IO概念及twisted案例股票数据抓取 ... [详细]
  • C++ STL复习(13)容器适配器
    STL提供了3种容器适配器,分别为stack栈适配器、queue队列适配器以及priority_queue优先权队列适配器。不同场景下,由于不同的序列式 ... [详细]
  • 给出一群女孩的重量和颜值和她们的朋友关系现在有一个舞台ab是朋友bc是朋友ac就是朋友给出最大承重可以邀请这些女孩来玩对于每一个朋友团体全邀请or邀请一个or不邀请问能邀请的女孩的 ... [详细]
author-avatar
zoey
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有