【问题标题】:What is the difference between append and addObject + Compare two dateappend和addObject有什么区别+比较两个日期
【发布时间】:2017-02-07 07:35:49
【问题描述】:

我有点困惑,append 和 addObject 有什么区别。

我在我的代码中同时使用了两者,但混淆了它们之间的区别。

添加对象

self.dateArrayServer.addObject(date as! String)

追加

dateArrayCalendar.append(dateFormatatter.stringFromDate(dateStart))

第二个问题是

嗨, 我正在尝试比较两个日期-

dateArrayForCompare,是我从 NSDate 得到的日期,dateArrayServer,是我从 json 响应得到的日期。

 var dateArrayServer = NSMutableArray()
 var dateArrayCalendar = NSMutableArray()
 var dateArrayForCompare = NSMutableArray()



let dateHomework:NSArray = allAsign.valueForKey("date") as! NSArray
 let homeWork = allAsign.valueForKey("assignmenttype") as! NSArray       

for date in dateHomework{
self.dateArrayServer.addObject(date as! String)
         }


let sys_date = NSDate()
                        print("System Date: \(sys_date)")
                        let df = NSDateFormatter()
                        df.dateFormat = "dd-MM-yyyy"
                        let currentDate = df.stringFromDate(sys_date)
                        print("String Date: \(currentDate)")

                        for dt in 0...self.dateArrayServer.count-1
                        {
                            if(self.dateArrayServer.objectAtIndex(dt) .isEqualToString("\(self.dateArrayForCompare)"))
                            {
                                print("Assignment on date: \(self.dateArrayServer.objectAtIndex(dt)) are:\n\(allAsign.objectAtIndex(dt))")
                            }else
                            {
                                print("\(self.dateArrayServer.objectAtIndex(dt)) doesn't match with \(self.dateArrayForCompare) ")
                            }
                        }

但是得到这个结果-

【问题讨论】:

  • dateArrayCalendar是什么数据类型?
  • 这不是使用 NSMutableArray 和 swift 数组的区别吗?
  • var dateArrayCalendar = [String]()
  • var dateArrayServer = NSMutableArray()
  • 好了,这就是区别... :P 从功能上讲,这两种方法都做同样的事情,名称不同,因为它们是不同类型的数组

标签: ios swift string append nsdate


【解决方案1】:

没有太大的不同,但我想我可以解释一下。 在 swift 两种数据类型中首先声明“let”和“var”这两种类型接受所有类型的数据。 但是,每当您在“var”中添加数组但未声明这是 NSArray 或 NSMutableArray 时,您将任何对象放在其中的最后一个位置,然后使用 append。 appen 就像 "+=" 运算符,因此它在最后一个位置添加该值

var Array = ["1","2"]
Array.append(["3"])

//Result :- "1","2","3"

但你声明为

NSMutableArray or NSArray

那么你必须使用 addObject like

var Array = NSMutableArray()
Array.addObject("1")
Array.addObject("2")
Array.addObject("3")

//Result :- "1","2","3"

和其他不同的

  1. append 是获取那个 value 并放在最后一个索引上。
  2. addObject 是获取那个 Object 并放在最后一个索引

而value和object有不同的含义。

【讨论】:

  • 代码sn-ps是JS用的。使用其他语言的通用代码块
【解决方案2】:

NSMutableArray 上的Add(anObject: Any) 等于array 上的Append(element: Element)

附加在文档中:

 Adds a new element at the end of the array.

     Use this method to append a single element to the end of a mutable array.

         var numbers = [1, 2, 3, 4, 5]
         numbers.append(100)
         print(numbers)
         // Prints "[1, 2, 3, 4, 5, 100]"

     Because arrays increase their allocated capacity using an exponential
     strategy, appending a single element to an array is an O(1) operation
     when averaged over many calls to the `append(_:)` method. When an array
     has additional capacity and is not sharing its storage with another
     instance, appending an element is O(1). When an array needs to
     reallocate storage before appending or its storage is shared with
     another copy, appending is O(*n*), where *n* is the length of the array.

     - Parameter newElement: The element to append to the array.

     - Complexity: Amortized O(1) over many additions. If the array uses a
       bridged `NSArray` instance as its storage, the efficiency is
       unspecified.

在文档中添加对象:

The object to add to the end of the array’s content. This value must not be nil.

【讨论】:

    【解决方案3】:

    append 和 addObject 的区别

    Append :它为您的数组附加多个项目,例如 for exa

    var cityArray: String[] = ["Portland","San Francisco","Cupertino","Seattle"]
    cityArray.append(["Vancouver", "Los Angeles", "Eugene"])
    

    您可以一次添加多个元素

    有一个属性 appendContentsof("collectiontype or sequencetype element") 可以添加多个元素

    AddObject : 在数组末尾一次添加一个对象

    但是注意 NSArray 和 NSMutableArray 没有属性 append 关键字,所以你不能在这种类型的数组中使用 append

    【讨论】:

      【解决方案4】:

      append和addobject的主要区别与例子。

      您已经知道 NSArrayNSMutableArray 之间的区别。 NSArray 它是一个固定数组,而 NSMutablearray 是动态数组意味着你可以在运行时增加这个数组的大小,所以它取决于你的要求,哪个是最好的。因为如果您使用 NSArray 意味着您不需要在运行时增加值,那么您可以将 NSArray 与 append 一起使用,并且在运行时您想要增加值,那么您可以使用 NSMutablearray和添加对象:

      NSArray 当你使用 Array 时,你可以像这样使用 append 对象。

      var str1:String = "John"
      var str2:String = "Bob"
      var myArray = ["Steve", "Bill", "Linus", "Bret"]
      myArray.append(str1)
      myArray.append(str2)
      

      NSMutableArray 当你使用 NSMutableArray 时你可以使用 addobject

      var myArray1 : NSMutableArray = ["Hello"]
      myArray1.addObject(str1)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-01-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多