Tag: Abhimuralidharan

iOS面试问题🤯😖😒

1.我们在Objective-C中有扩展吗? 答案是肯定的。 2.目标C中类别和扩展名之间的区别? 可以为任何类声明一个类别,即使您没有原始的实现源代码。 类扩展与类别具有某些相似性,但是只能将其添加到您在编译时拥有源代码的类中(该类与该类扩展同时进行编译)。 类别使您可以在主界面文件之外添加方法。 而扩展名必须在主接口文件中实现。 这意味着我们可以确定,您不能使用扩展来扩展内置类或没有源代码的类,而应该使用类别。 要使用扩展,您需要访问要扩展的类的源。 3. Fallthrough关键字很快? 在Swift中, switch语句不会落入每种情况的底部而进入下一种情况。 即,第一个匹配的情况一旦完成,整个switch语句就完成其执行。 快速地,在切换案例中使用fallthrough语句来执行case语句,根据我们的要求,case语句位于匹配的case语句旁边。 fallthrough关键字不检查导致执行陷入的switch条件的条件。 fallthrough关键字仅导致代码执行直接移至下一个case(或default case)块内的语句,就像C的标准switch语句行为一样。 4.如何使协议中的方法快速可选? 我们可以通过两种方式做到这一点。 纯快捷方式应类似于使用protocol extension提供默认实现。 目标— C兼容性的方式是使用@objc和optional关键字。 重要: objc的缺点-兼容性方式是上MyProtocolObjc 中的 MyProtocolObjc 成为一个类-仅协议 。 结构不符合该协议。 错误: 非类类型’SomeStruct’不符合类协议’MyProtocolObjc’ 5.反转字符串而不使用“ reversed()”内置函数 如果面试官要求您将代码写在纸上,请当场杀死他。 对我来说,没有xcode编写优化代码真的很困难。 上次问这个问题时,这是我首先想到的。[笔和纸的方法]。 扩展字符串{ func reverse()->字符串{ var tempString =“” 对于自我中的字符{ tempString =字符串(char)+ tempString } 返回tempString } } 我能够剪切-使用Playgrounds将其拍摄到Playgrounds 。 您可以在字符串上使用高阶函数“ […]

如何在iOS Swift中创建简单的QRCode /条形码扫描仪应用程序?

使用swift在iOS中创建QRCode扫描仪应用程序很容易。 AVFoundation框架提供了一个默认实现来执行此操作。 让我们看看它是如何完成的。 AVFoundation具有AVCaptureSession ,它提供了扫描代码所需的摄像头界面。 我们要做的就是向AVCaptureSession实例添加自定义版本的AVCaptureMetadataOutput并调用startRunning() 一样的。 AVCaptureMetadataOutput具有 一个metadataObjectTypes数组,该数组应根据我们的要求进行定制,并应符合AVCaptureMetadataOutputObjectsDelegate 。 让metadataOutput = AVCaptureMetadataOutput() metadataOutput.setMetadataObjectsDelegate(自己,队列:DispatchQueue.main) metadataOutput.metadataObjectTypes = [.qr,.ean8,.ean13,.pdf417] 当我们开始会话时,它将连续扫描提供的metadataObjectTypes并在找到任何匹配类型时调用委托方法。 然后,我们可以在captureSession实例上调用stopRunning() ,或者根据需要继续扫描。 func metadataOutput(_输出:AVCaptureMetadataOutput, didOutput metadataObjects:[AVMetadataObject], 来自连接:AVCaptureConnection){ //在这里工作… } 我创建了一个示例类,可以为您完成所有这些工作。 这是一个GitHub示例项目 ,执行相同的操作。 参考:Hackingwithswift。 而已。 ! 请享用!! 如果您喜欢阅读这篇文章,请分享并给予一些鼓掌,以便其他人可以找到它👏👏👏👏👏!!!! 您可以在Medium上关注我以获取新文章。 另外,在LinkedIn上与我联系。 如果您有任何评论,问题或建议,请随时在下面的评论部分中发布它们!