小编And*_*kas的帖子

如何使用AVCaptureDeviceDiscoverySession获取前置摄像头,后置摄像头和音频

在iOS 10问世之前,我使用以下代码来获取录像机的视频和音频:

 for device in AVCaptureDevice.devices()
 {
     if (device as AnyObject).hasMediaType( AVMediaTypeAudio )
     {
         self.audioCapture = device as? AVCaptureDevice
     }
     else if (device as AnyObject).hasMediaType( AVMediaTypeVideo )
     {
         if (device as AnyObject).position == AVCaptureDevicePosition.back
         {
             self.backCameraVideoCapture = device as? AVCaptureDevice
         }
         else
         {
             self.frontCameraVideoCapture = device as? AVCaptureDevice
         }
     }
 }
Run Code Online (Sandbox Code Playgroud)

当iOS 10终于问世时,我在运行代码时收到了以下警告.请注意,我的录像机仍然可以正常工作约2周.

在iOS 10.0中不推荐使用'devices()':请改用AVCaptureDeviceDiscoverySession.

当我今天早上运行我的代码时,我的录像机停止了工作.xCode8没有给我任何错误,但摄像头捕获的previewLayer是完全白色的.当我开始录制时,我收到以下错误:

错误域= AVFoundationErrorDomain代码= -11800"操作无法完成"UserInfo = {NSLocalizedDescription =操作无法完成,NSUnderlyingError = 0x17554440 {错误域= NSOSStatusErrorDomain代码= -12780"(null)"},NSLocalizedFailureReason = An发生未知错误(-12780)}

我认为这与我使用弃用的方法有关AVCaptureDevice.devices().因此,我想知道如何使用AVCaptureDeviceDiscoverySession

提前谢谢你的帮助!

avfoundation ios avcapturedevice swift

40
推荐指数
4
解决办法
3万
查看次数

为什么在类外部(但在头文件中)定义的类成员函数必须内联?

我已经阅读了有关内联两种含义的现有答案,但我仍然感到困惑。

假设我们有以下头文件:

// myclass.h

#ifndef INCLUDED_MYCLASS
#define INCLUDED_MYCLASS

class MyClass
{
   public:
      void foo(); // declaration
};

inline void MyClass::foo()
{
    // definition
}

#endif
Run Code Online (Sandbox Code Playgroud)

为什么void foo()在文件中的类之外定义的 which 必须使用 显式定义inline

c++ inline function member header-files

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

动态规划 (DP) 中的重叠子问题是什么?

为了使动态规划适用,问题必须具有两个关键属性:最优子结构重叠子问题 [1]。对于这个问题,我们将只关注后一个属性。

重叠子问题有多种定义,其中两个是:

  • 如果问题可以分解为多次重复使用的子问题,或者该问题的递归算法一遍又一遍地解决相同的子问题,而不是总是生成新的子问题 [2],则称该问题具有重叠的子问题
  • 要应用动态规划,优化问题必须具备的第二个要素是子问题的空间必须“小”,因为该问题的递归算法一遍又一遍地解决相同的子问题,而不是总是生成新的子问题(CLRS算法介绍

如果找到解决方案涉及多次解决相同的子问题,那么这两个定义(以及互联网上的许多其他定义)似乎都可以归结为具有重叠子问题的问题。换句话说,在寻找原始问题的解决方案的过程中,有许多小的子问题被多次计算。一个经典的例子是斐波那契算法,很多例子都用来让人们理解这个属性。

直到几天前,生活都很棒,直到我发现了Kadane 的算法,这让我质疑重叠的子问题定义。这主要是因为人们对它是否是 DP 算法有不同的看法:

有人不认为 Kadane 的算法是 DP 算法的最令人信服的原因是每个子问题只会在递归实现中出现和计算一次[3],因此它不包含重叠子问题的属性。然而,互联网上的很多文章都认为 Kadane 的算法是一种 DP 算法,这让我怀疑我对重叠子问题的理解首先意味着什么。

人们似乎对重叠子问题的属性有不同的解释。使用简单的问题(例如斐波那契算法)很容易看到它,但是一旦您介绍了 Kadane 的算法,事情就会变得非常不清楚。如果有人能提供一些进一步的解释,我将不胜感激。

algorithm dynamic-programming fibonacci divide-and-conquer kadanes-algorithm

3
推荐指数
1
解决办法
590
查看次数

如何使用Swift在iOS开发中实现"缓存"

我在面向iOS应用程序实现的缓存机制方面遇到了一些问题.首先,让我解释一下我的情况.

我想通过我的服务器上的RESTful API使用Alamofire请求数千个附近的位置记录(10000或更多),其中每个记录由一串字符串组成.JSON响应格式与此类似:

[
   {
     "id": 1,
     "name": "Name x",
     "lat": 59.5025878,
     "lng": -0.1509515,
     "address": "Address x"
   },
   {
     "id": 2,
     "name": "Name y",
     "lat": 61.5025878,
     "lng": -0.1508515,
     "address": "Address y"
   },

   etc.

 ]
Run Code Online (Sandbox Code Playgroud)

关键是我只想在应用程序启动时或经过一定时间后或应用程序用户大幅移动他/她的位置时发送/重新发送此查询,这也会改变附近的位置.为了保持服务器负载较低,我计划对应用程序内部的返回位置进行搜索查询,而不是为每个请求查询服务器,这实际上是低效且昂贵的.

因此,我想在手机上缓存我的响应数据,但我不知道选择哪个选项.我在CoreDataNSCache上做了一些背景阅读.CoreData允许我将位置结果存储在数据库中.这样做的好处是存储的记录在内部保持活跃,因为它毕竟是永久存储解决方案.另一方面,使用CoreData可能是一个完全的过度杀伤,因为它带来了开销,使用NSCache将位置记录保存在缓存中可能不会占用太多内存(记住我只存储字符串).但话说回来,为什么当用户甚至不经常访问它们时,将位置数据保留在缓存中.此外,有可能释放缓存中的位置条目以节省更多内存.

我相信还有其他解决方案可能更适合我的目的.毕竟,我对iOS中的这个主题很新,所以我真的很感激一些指导.

先感谢您.

caching core-data ios nscache swift3

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

为什么不能在 .cpp 文件中内联函数定义?

为什么不能在 .cpp 文件中内联函数或类成员函数定义?例如,在我下面的测试示例中,如果我尝试在 cpp 文件中内联函数或类成员定义,链接器会给我一个未定义的引用错误:

测试.h

void print();

class A
{
    public:
        void print() const;
};
Run Code Online (Sandbox Code Playgroud)

测试.cpp

#include <test.h>

inline void print()
{
    // implementation
}

inline void A::print() const
{
    // implementation
}
Run Code Online (Sandbox Code Playgroud)

主程序

#include <test.h>

int main(int argc, char** argv)
{
    print(); // undefined reference to `print()'
    A a;
    a.print(); // undefined reference to `A::print() const'

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我在这里阅读了一些答案,但我仍然不确定它是如何工作的。

c++ linker inline inline-functions

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