相关疑难解决方法(0)

Swift中的可选值是什么?

来自Apple的文档:

您可以使用iflet一起处理可能缺少的值.这些值表示为选项.可选值包含值或包含nil以指示缺少值.?在值的类型后面写一个问号()以将值标记为可选.

为什么要使用可选值?

optional swift

258
推荐指数
6
解决办法
13万
查看次数

Swift有动态调度和虚拟方法吗?

从C++/Java/C#背景开始我希望在Swift中看到虚拟方法,但是阅读swift文档我没有提到虚拟方法.

我错过了什么?

virtual-functions dynamic-dispatch swift

21
推荐指数
3
解决办法
8354
查看次数

在Swift中将可选字符串转换为int

将可选字符串转换为int时遇到麻烦.

   println("str_VAR = \(str_VAR)")      
   println(str_VAR.toInt())
Run Code Online (Sandbox Code Playgroud)

结果是

   str_VAR = Optional(100)
   nil
Run Code Online (Sandbox Code Playgroud)

我想要它

   str_VAR = Optional(100)
   100
Run Code Online (Sandbox Code Playgroud)

optional swift

9
推荐指数
2
解决办法
2万
查看次数

缺少共享引用

在进行std::shared_ptr大量工作时,我有点怀念shared_ref实现的过程。这是 的特化shared_ptr,它保证它永远不会包装 a nullptr(当然,给定正确的用法)。我有点想知道为什么它不在 C++11 标准中。执行过程中是否存在市长问题?我的头顶上什么也想不出来。

编辑:

我希望有一个类似于以下的界面:

template <typename T>
class shared_ref {
public:
  shared_ref( T&& ref );
  T& get();
  T* operator&() const;

  template< class Y > 
  void reset( Y&& obj );

  long use_count() const;
  bool unique() const;

  void swap( shared_ref& r );
};
Run Code Online (Sandbox Code Playgroud)

c++ refcounting c++11

5
推荐指数
1
解决办法
1428
查看次数

为什么使用"let"而不是var?

在这个页面http://www.raywenderlich.com/85578/first-core-data-app-using-swift中,许多示例使用let而不是var.

func tableView(tableView: UITableView,
  cellForRowAtIndexPath
  indexPath: NSIndexPath) -> UITableViewCell {

  let cell =
      tableView.dequeueReusableCellWithIdentifier("Cell")
      as UITableViewCell

  let person = people[indexPath.row]
  cell.textLabel!.text = person.valueForKey("name") as String?

  return cell
}
Run Code Online (Sandbox Code Playgroud)

我在很多教程中看到了这一点.有没有理由在var上面的片段中使用let

ios swift

-1
推荐指数
1
解决办法
205
查看次数

检查数组是否为零

我有一个自定义模型的数组,我想检查它是否为零,其大小大于0.

以下是我的自定义对象数组

var listCountries : [Countries]? = nil

现在在viewDIdLoad中我想对它进行检查.我是Swift的新手.我有很好的Java工作经验.

我已经读出了可选值概念和保护,如果让语句.但我无法理解它们的使用效率.我读了太多SO问题,但未能弄明白.

例如,如果我想检查java中的上部给定数组,我只需要这样做

if(listCountries != null && listCountries.size()>0){
    //DO something 
}
Run Code Online (Sandbox Code Playgroud)

总结一下我的问题:

  1. 如何使上层给定(Java代码)签入swift 4.?什么是更顺畅和可靠的方式.
  2. 如果let,guard,guard let语句有什么用呢?如果我声明一个变量(数组,字符串)作为可选项,我必须承担可选的检查,如强制包装每个地方.这对我来说太混乱了.

请帮忙.我知道这个问题有不同的问题.但这有一些不同的背景.

arrays ios swift

-2
推荐指数
2
解决办法
101
查看次数