草庐IT

Self-Debug

全部标签

ios - 是否需要将 scrollview.delegate 设置为 self?

我正在参加斯坦福大学提供的在线iOS类(class)。在示例代码中,@IBOutletweakvarscrollView:UIScrollView!{didSet{scrollView.contentSize=imageView.frame.size//allthreeofthenextlinesofcode//arenecessarytomakezoomingworkscrollView.delegate=selfscrollView.minimumZoomScale=0.03scrollView.maximumZoomScale=1.0}}但是,如果我删除scrollView.de

swift - 由于 [weak self],我发现自己经常使用 "if self != nil"...这正常吗?

示例(在我的ViewController中):RESTApi.fetchUser(){[weakself]Voidinifself!=nil{//theviewcontrollerisstillhere.self!.items.append(stuff)self!.whatever}}我注意到我立即使用ifself!=nil,然后到处都是self!。有没有更好的办法?我觉得这有悖于Swift的方式。注意:我使用[weakself]因为我的ViewController可能为nil(如果用户在RESTApi下载数据之前返回)。 最佳答案

swift 3 : capture strong self in @escaping closure without asynchronous work

有一个带有以下声明的协议(protocol):typealiasSuggestionSourceCallback=([Suggestion])->()protocolSuggestionSource{funcsuggest(_query:SuggestionQuery,callback:@escapingSuggestionSourceCallback)}有两个类实现了这个协议(protocol)。第一类异步获取建议(通过GCD)finalclassFisrtClass:SuggestionSource{privateletqueue=DispatchQueue(label:"my.a

callback - 不可能对回调函数进行 self 引用

不知道如何正确表达问题,所以这里是代码:classFoo{funcfoo2(nextCall:()->()){}funcfoo(nextCall:()->()){funcf1(){foo2(f1)}}}浓缩了,但不确定是不是同类型的问题:classFoo{funcfoo(nextCall:()->()){funcf1(){foo(f1)}}}错误信息是:无法使用来自另一个本地函数的捕获来引用本地函数。知道如何解决这个问题吗?提供的函数用作回调函数,不知何故我想知道为什么不能使用该函数。 最佳答案 此代码成功编译:classFoo{f

ios - Rx swift : Is it safe to always use [unowned self] when a class has a disposeBag property?

我最近发现一篇文章说使用[unownedself]总是安全的,只要您将订阅添加到DisposeBag并且它在ViewController内.假设我有一个ViewController,其中deinit由于强引用而未被调用:classViewController:UIViewController{@IBOutletweakvarsearchBar:UISearchBar!@IBOutletweakvartableView:UITableView!privateletdisposeBag=DisposeBag()privatevarresults=Variable([])privatevar

swift - 快速关闭时 gcd 中的弱 self

apiFunc(user:User.currentUser,start:0,limit:Constants.numberOfItemInOnePage,success:{[weakself](friends)->Voidindispatch_async(dispatch_get_main_queue(),{[weakself]()->VoidinifletstrongSelf=self{strongSelf.friendList=friendsstrongSelf.loading=falsestrongSelf.tableView.reloadData()}})},failure:ni

ios - 是什么导致我的 AppDelegate 中的 self 未定义?

我已经在一个应用程序上工作了几个星期,然后进行了一次重大重构,但不知何故破坏了我的应用程序委托(delegate)。如果我在applicationDidFinishLaunchingWithOptions中放置一个断点,然后键入pself,我会看到以下错误:error::1:1:error:useofunresolvedidentifier'self'self^如果我在applicationDidBecomeActive中放置一个断点并键入pself那么我不会收到任何错误并且self似乎被正确“定义”。如果我从一个新项目开始我就不会遇到这个问题。我的AppDelegate.swift如

swift - 为什么当我的便利初始化程序在 if-let 语句中运行 self.init 时,Swift 会给我一个编译器错误?

这是我想要编译的代码示例:classFruit{varname:Stringinit(name:String,season:String){self.name=name}convenienceinit?(data:[String:String]){ifletname=data["name"],region=data["region"]{self.init(name:name,season:region)}}}编译器错误是“在调用self.init之前在委托(delegate)初始化程序中使用‘self’”如果初始化程序是可失败的,我不应该能够拥有不运行任何初始化程序的代码路径吗?如果您

ios - 为什么 iOS 11 : self. performSegue() 不工作?

我今天开始迁移到Xcode9和iOS11版本。在我的基于故事的应用程序中,以下代码:self.performSegue(withIdentifier:Const.UI.Segue.showIntro,sender:self)在所有以前的iOS中运行良好(刚刚通过iOS10.3、10.0、9.0验证)但在iOS11中无法运行。附加代码:privatefunchandleSuccessfulLogin(){self.log.info("LoggedIn")DispatchQueue.main.async(){self.performSegue(withIdentifier:Const.UI

Leetcode刷题本地debug框架搭建

思路1.初版cmake+单一.cpp文件参考:https://blog.songjiahao.com/archives/3622.改良版cmake+源文件、头文件(含List、Tree等数据结构)分离+gtest参考:https://github.com/Pokerpoke/LeetCode Normal模板以Leetcode1两数之和为例#include#include#includeusingnamespacestd;classSolution{public:vectorint>twoSum(vectorint>&nums,inttarget){//key代表数字,value代表位置uno