小编Fat*_*tie的帖子

dataTaskWithURL doco,做什么:{NSURLErrorDomain,NSURLErrorCancelled}的错误值是什么意思?

假设您正在使用NSURLSession dataTaskWithURL:...

self.currentConnection =
  [sess dataTaskWithURL:goUrl
  completionHandler:^(NSData *data, NSURLResponse *response, NSError *error)
    {
    [self.results addObjectsFromArray: [self yourDataConversionCode:data] ];

    dispatch_async(dispatch_get_main_queue(), ^{  if (after) after(); );
    }];
Run Code Online (Sandbox Code Playgroud)

当然,如果可能需要取消它.(比方说,用户已经更改了搜索字词或类似问题.)这很容易...

-(void)cancelAnyCurrentBooksearch
  {
  [self.currentConnection cancel];
  self.currentConnection = nil;
  }
Run Code Online (Sandbox Code Playgroud)

然而,愚蠢地它仍然调用完成块非常烦人.

现在,这是取消的"文档":

/* -cancel returns immediately, but marks a task as being canceled.
 * The task will signal -URLSession:task:didCompleteWithError: with an
 * error value of { NSURLErrorDomain, NSURLErrorCancelled }.
 */
- (void)cancel;
Run Code Online (Sandbox Code Playgroud)

这是问题......

这到底是什么意思:

错误值{NSURLErrorDomain,NSURLErrorCancelled}

你能在NSError中得到两个值吗?

如果是这样,我如何检查NSError是否正是这样:

"{NSURLErrorDomain,NSURLErrorCancelled}"

不管它是什么意思?

请注意,如果您这样做:

self.currentConnection = …
Run Code Online (Sandbox Code Playgroud)

objective-c nserror ios nsurlsession

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

Unity3d如何在代码中更改UI.Button文本

简单的问题,我正在尝试制作一个脆弱的鸟克隆,我需要帮助显示分数.我已将分数添加并显示到控制台,但我无法将其显示在gui文本上.

我已经尝试谷歌如何做到这一点并观看很多人的飞扬鸟类教程,看看他们是如何做到的,但是当他们引入新的ui系统时,所有这些都是在团结4.6之前,他们使用的相同代码似乎没有上班.

那么如何在代码中访问附加到我的游戏对象的gui文本呢?谢谢.

c# monodevelop unity-game-engine unity3d-gui

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

如果object2 = object1,则引用equals返回false

我有这段代码:

Rect a = new Rect(0, 0, 4, 4);
Rect b = new Rect(0, 0, 4, 4);
print(Object.ReferenceEquals(a, b)); //prints false
print(Object.ReferenceEquals(a, a)); //prints false
b = a;
print(Object.ReferenceEquals(a, b)); //prints false
Run Code Online (Sandbox Code Playgroud)

我希望能够确定引用是否是内存中的同一对象,因此对该对象的引用相同.因此第一次打印应该返回false,第二次打印应该返回true.该Rect是Unity引擎,但我可以在我自己的类包装,并覆盖equals如果需要做.然而,我希望第6行打印,true因为它a = b会将两个变量指向相同的参考.

c# equality

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

清除drawRect形状层绘图中的绘图

为了节省时间,任何人使用Google这里,我错误地以为clearsContextBeforeDrawing也很清楚在drawRect中添加任何图层。它不是。

当然,正如马特所解释的那样,您当然应该只在 drawRect 中以普通方式绘制,然后才能clearsContextBeforeDrawing正常工作。例子,

override func drawRect(rect: CGRect)
    {
    // clearsContextBeforeDrawing works perfectly here as normal
    // don't add any layers in here :)

    let dotPath = UIBezierPath(ovalInRect:rect)
    mainColor.setFill()
    dotPath.fill()
    let ins:CGFloat = ( ringThickness / 2 )
    let circlePath = UIBezierPath(ovalInRect: CGRectInset(rect,ins,ins) )
    circlePath.lineWidth = ringThickness
    ringColor.setStroke()
    circlePath.stroke()
    }
Run Code Online (Sandbox Code Playgroud)

这是一种糟糕的画法 drawRect

override func drawRect(rect: CGRect)
    {
    let circlePath = UIBezierPath(ovalInRect:rect)
    let circle = CAShapeLayer()
    circle.path = circlePath.CGPath
    circle.fillColor = someColor.CGColor
    layer.addSublayer(circle)

    ... and …
Run Code Online (Sandbox Code Playgroud)

calayer drawrect ios swift

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

不能子类 DispatchGroup - “只能通过 Objective-C 运行时可见”?

子类是不可能的DispatchGroup,怎么做?

笔记:

这终于在 iOS 10+ 中得到修复

例如,携带一个带状态的包,

class PushDispatchGroup: DispatchGroup {
    var sentIds: [(tableName: String, rowId: String)] = []
}
Run Code Online (Sandbox Code Playgroud)

感谢shallowThought 指出这是在iOS10 中修复的。

objective-c-runtime swift swift3

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

Swift3扩展"Any?" - 班级?

更简短的解释:

你经常想要扩展"目标"......通常是目标Any?.但你不能扩展Any.怎么做?


想想这个,

extension UIViewController {    
    func add(tap v:UIView, _ action:Selector) {
        let t = UITapGestureRecognizer(target: self, action: action)
        v.addGestureRecognizer(t)
    }
}
Run Code Online (Sandbox Code Playgroud)

很好,你现在可以......

self.tap(redButton, #selector(clickedRedButton))
Run Code Online (Sandbox Code Playgroud)

...在任何视图控制器中.

但你可以对任何目标做同样的事情.

所以,要在UITableViewCell上使用扩展说,你还必须拥有....

extension UIGestureRecognizerDelegate {
        func add(tap v:UIView, _ action:Selector) {
        let t = UITapGestureRecognizer(target: self, action: action)
        v.addGestureRecognizer(t)
    }
}
Run Code Online (Sandbox Code Playgroud)

UITapGestureRecognizer的目标参数实际上是 Any?

但是,你不能这样做......

extension Any { 
Run Code Online (Sandbox Code Playgroud)

解决方案是什么?如何制作一个可以在其上工作的扩展,Any?例如在第一个参数中UITapGestureRecognizer

或者正如Conner'c评论所暗示的,有没有办法:

extension  UIViewController or UIView {
Run Code Online (Sandbox Code Playgroud)

而不是复制和粘贴两次?

extension-methods ios swift

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

在初始化时设置日期格式化程序(例如)?

假设您有一个全局的日期格式化程序

let df:DateFormatter = DateFormatter()
Run Code Online (Sandbox Code Playgroud)

理想情况下.dateFormat,在相同的全局初始化时间进行设置会很好- 有点像这样

let df:DateFormatter = DateFormatter().dateFormat = "yyyy-MM-dd"
Run Code Online (Sandbox Code Playgroud)

但是DateFormatter没有替代的初始化(没有像这样的东西DateFormatter(withDateFormat: "yyyy-MM-dd"))

真的,有一个Swift解决方案吗?是否存在任何类之外的代码块的语法,它可以在任何类型之前运行,并且可以在其中设置这种性质的东西?

(注意 - 我完全了解替代方法,如单例,扩展等:这是一个Swift结构问题,谢谢.)

swift

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

如何偏移 MKMapView 以将坐标置于指定点下

我有两个视图控制器。一种允许用户输入他们自己对事物的看法:

在此处输入图片说明

另一个是 UITableViewController,允许他们查看提交的目击事件:

在此处输入图片说明

我想要的是让用户能够在第二个 VC 中点击他们的视线,并使用相关详细信息填充第一个 VC。我使用以下方法为 textFields 工作:

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    
    let pvc = self.navigationController?.previousViewController() as! SubmitSightingVC
    let sighting = sightingsArray[indexPath.row]
    pvc.titleTextField.text = sighting["title"] as! String?
    pvc.locationTextField.text = sighting["location"] as! String?
    pvc.dateTextField.text = sighting["date"] as! String?
    pvc.descriptionTextView.text = sighting["sightingDesc"] as! String?
    
    let pinArray = ["1", "2", "3", "4", "5"]
    let pinTextArray = ["1text", "2text", "3text", "4text", "5text"]
    var pinImageArray = [#imageLiteral(resourceName: "1"), #imageLiteral(resourceName: "2"), #imageLiteral(resourceName: "3"), #imageLiteral(resourceName: "4"), #imageLiteral(resourceName: "5")]
    let pinIconString = …
Run Code Online (Sandbox Code Playgroud)

coordinates mkmapview ios swift

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

可以使用 MediaCodecSDK 为 Android 中的视频添加叠加层吗?

假设您有一个 20 秒的视频(可能是用设备相机拍摄的),并且您想在视频中添加一个叠加层。

(叠加层只是一个普通的光栅图像,即一个 Android Image( doc )。)

您想要创建一个新视频,将叠加作为视频图像的一部分,然后保存视频。

事实上,MediaCodec SDK 可以用来做这个工作吗?

https://developer.android.com/reference/android/media/MediaCodec

过去,您通常会使用 FFMPEG 来解决此类问题,但这是一团糟且速度缓慢。

MediaCodec 可以在这里使用吗?

由于它是“新的”,我无法找到有关此的任何信息.....

android video-processing android-mediacodec

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

Unity NetworkManager 组件,局域网 IP?

在 Unity 的新网络中,我在同一个 WiFi 网络上并排放置了两台计算机。

使用NetworkManager,我正在尝试通过 LAN将它们联网。

TBC,绝对与全球互联网网络无关,而不是在本地主机上。

在此处输入图片说明

左边是192.168.0.26

右边是192.168.0.120

假设我们希望左边的成为服务器,即简单地使用

    Debug.Log("I'm now a server");
    networkManager.StartServer();
Run Code Online (Sandbox Code Playgroud)

假设我们希望合适的人成为客户(所以,StartClient().)

TBC 我只是查看了两台计算机上的 ipConfig/etc,以获取当前的本地 IP。

我绝对确保两台机器都为 Unity 编辑器打开防火墙(令人恼火的陷阱)。

事实上,您使用哪个“NetworkAddress”(见图)?在两台机器上?

有四种排列。

我只是无法让它们通过 LAN 连接 - 网络地址应该是什么?


脚注:对于在这里使用谷歌搜索的任何人,请注意有关 Unet 的重要提示... /sf/answers/3623150961/

networking unity-game-engine

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