小编Maz*_*yod的帖子

Python服务发现:通过本地网络发布服务

我有一个"服务器"python脚本在一台本地网络机器上运行,它等待客户端连接,并传递一些工作要做.服务器和客户端代码都已编写,并按预期工作...

问题是,这台服务器可能是从本地网络中的任何一台机器运行的,所以我不能对脚本中的地址进行硬编码......我立刻想知道我是否可以让机器做广告,告诉它是否存在,客户可以回复那个.使用标准库在Python中可行吗?不幸的是,我真的没有时间下载扭曲或龙卷风并了解它们,所以我需要一些简单的东西.

我试图更多地考虑它,并意识到我可以有一台静态IP机器,服务器注册/取消注册,客户端可以从那里寻找服务器.我想,有点像洪流跟踪器.如果我不能轻易地做出服务广告方法,那就必须这样做.

python sockets networking client-server service-discovery

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

Swift中的SpriteKit物理 - Ball滑向墙壁而不是反射

我一直在创建我自己非常简单的基于Breakout的测试游戏,同时学习SpriteKit(使用Ray Wenderlich等教授的iOS游戏)来看看我是否可以应用我学到的概念.我决定通过使用.sks文件来创建精灵节点并用物理主体替换我的手动边界检查和碰撞来简化我的代码.

然而,只要它以陡峭的角度与它们碰撞,我的球就会保持平行于墙壁/其他矩形(例如,只是向上和向下滑动).这是相关的代码 - 我已将物理主体属性移动到代码中以使它们更加可见:

import SpriteKit

struct PhysicsCategory {
  static let None:        UInt32 = 0      //  0
  static let Edge:        UInt32 = 0b1    //  1
  static let Paddle:      UInt32 = 0b10   //  2
  static let Ball:        UInt32 = 0b100  //  4
}

var paddle: SKSpriteNode!
var ball: SKSpriteNode!

class GameScene: SKScene, SKPhysicsContactDelegate {

  override func didMoveToView(view: SKView) {

    physicsWorld.gravity = CGVector.zeroVector

    let edge = SKNode()
    edge.physicsBody = SKPhysicsBody(edgeLoopFromRect: frame)
    edge.physicsBody!.usesPreciseCollisionDetection = true
    edge.physicsBody!.categoryBitMask = PhysicsCategory.Edge
    edge.physicsBody!.friction = 0
    edge.physicsBody!.restitution …
Run Code Online (Sandbox Code Playgroud)

box2d game-physics sprite-kit swift

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

Firebase云消息传递iOS:无后台推送通知

使用较新的Firebase云消息传递与方法调配我成功地能够didReceiveRemoteNotification在我的应用程序被预先考虑时在我的应用程序委托中的方法中接收有效负载.然而,我没有获得任何类型的有效负载,didReceiveRemoteNotification并且当我的应用程序被后台化时不会被调用,尽管api响应消息已成功发送(见下文)
这是我发送到FCM api以触发推送通知的请求 https://fcm.googleapis.com/fcm/send

{
"to": "{valid-registration-token}",
"priority":"high", //others suggested setting priority to high would fix, but did not
  "notification":{
      "body":"Body3",
      "title":"test"  
 } 
}
Run Code Online (Sandbox Code Playgroud)


来自FCM的回应

{
      "multicast_id": 6616533575211076304,
      "success": 1,
      "failure": 0,
      "canonical_ids": 0,
      "results": [
        {
          "message_id": "0:1468906545447775%a4aa0efda4aa0efd"
        }
      ]
    }
Run Code Online (Sandbox Code Playgroud)

这是我的appDelegate代码

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

        Fabric.with([Crashlytics.self])
        FIRApp.configure()

        NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(self.tokenRefreshNotification),
                                                         name: kFIRInstanceIDTokenRefreshNotification, object: nil)
        return true
    }



    func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : …
Run Code Online (Sandbox Code Playgroud)

apple-push-notifications ios firebase swift firebase-cloud-messaging

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

"尝试在Cocos2d中使用前瞻性'游戏'作为'MathGame'的超类"

我正在为iphone制作Cocos2d游戏,我有我的主要游戏模式Game,它继承自CCLayer.

我正在尝试制作另一种游戏模式,MathGame它继承自Game,但是当我尝试编译时,我得到了以下错误MathGame.h:

尝试使用前瞻性"游戏"作为"MathGame"的超类

即使实现和接口为MathGame空,我也会收到错误.只有当我尝试包含MathGame.h在另一个文件中时才会发生这种情况.

这是Game类的代码:

// Game.h
#import "cocos2d.h"
#import <GameKit/GameKit.h>
#import "SplashScreenLayer.h"

@interface Game : CCLayer
    // A bunch of stuff
@end
Run Code Online (Sandbox Code Playgroud)

新游戏类型:

// MathGame.h
#import "Game.h"

@interface MathGame : Game
@end
Run Code Online (Sandbox Code Playgroud)

主菜单包括:

// SplashScreen.h
#import "cocos2d.h"
#import "Game.h"
#import "MathGame.h"
#import "HowToPlayLayer.h"
#import "AboutLayer.h"

@interface SplashScreenLayer : CCLayer
    // A bunch of stuff
@end
Run Code Online (Sandbox Code Playgroud)

我在网上找不到任何有用的东西.有任何想法吗?

import inheritance objective-c forward-declaration

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

如何在UIScrollView中获取UIView中对象的位置

所以假设我有一个UIScrollView,其中有3个UIViews,其中每个都有一个UISlider.它们垂直放置在UIScrollView中.

我现在在UIScrollView中也有第4个UIView,我想根据已经使用的滑块的位置移动它.

所以在我传递发送者的sliderChanged方法中,我得到了滑块的位置,并将第4个UIWindow的位置调整为y.这在第一个UIView上运行得很好,但是一次在另一个迫使我向下滚动的UIView上,使用滑块移动第四个UIView但是停留在UIScrollView的开头

我在用:

[4thView setCenter:CGPointMake([4thView center].x, [slider center].y+10)];
Run Code Online (Sandbox Code Playgroud)

我需要的是获取滑块的位置相对于scrollView的内容而不是相对于它的UIView,以便我可以相对于scrollView内容再次设置第四个视图.

iphone position uiscrollview uiview uislider

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

(lldb)以十六进制打印无符号长整型

我正在尝试调试我的Objective-C程序,我需要以unsigned long long十六进制打印我的变量.我正在使用lldb调试器.

short以十六进制打印,您可以使用:

(lldb) type format add --format hex short
(lldb) print bit
(short) $11 = 0x0000
Run Code Online (Sandbox Code Playgroud)

但是,我无法让它发挥作用unsigned long long.

// failed attempts:
(lldb) type format add --format hex (unsigned long long)
(lldb) type format add --format hex unsigned long long
(lldb) type format add --format hex unsigned decimal
(lldb) type format add --format hex long long
(lldb) type format add --format hex long
(lldb) type format add --format …
Run Code Online (Sandbox Code Playgroud)

debugging hex objective-c unsigned-long-long-int lldb

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

智能指针不能与Android NDK r8一起使用

我无法弄清楚如何在我的Android项目中使用共享指针.我在Mac OS X上使用最新的Eclipse ADT和Android NDK r8d.

这是我的Android.mk文件中的内容:

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_CPPFLAGS  := -std=c++11
LOCAL_MODULE    := native
LOCAL_SRC_FILES := native.cpp
include $(BUILD_SHARED_LIBRARY)
Run Code Online (Sandbox Code Playgroud)

这是我的Application.mk文件中的内容:

NDK_TOOLCHAIN_VERSION=4.7
APP_STL := stlport_shared
Run Code Online (Sandbox Code Playgroud)

我已经尝试了默认的GCC 4.6,实验4.7和clang3.1工具链.
我试过链接到stlport_sharedgnustl_sharedc ++运行时库.
我已经试过了FLAGS -std=c++11,-std=c++0x-std=gnu++11.

我能够使用lambdas和c ++ 11标准的auto,所以C++ 11标志似乎正在工作.但是,无论何时我尝试使用shared_ptr,weak_ptr或unique_ptr,我都会收到错误'suchandsuch_ptr' is not a member of 'std'

我有#include <memory>我的cpp文件.现在Eclipse告诉我Unresolved inclusion: <memory>,但我得到同样的东西<vector>,<string>并且那些似乎编译和工作正常.

智能指针是否未在Android NDK中包含的工具链中实现?
如果没有,为什么不呢?由于GCC和clang已经支持智能指针很长一段时间了,这意味着我要么丢失一些东西,要么Android开发者因为某些原因禁用了它们.
有线索吗?

c++ gcc smart-pointers android-ndk c++11

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

iOS 5:如何实现自定义(图像)后退按钮

我已经在我的博客上完成了教程,所以我知道如何制作一个可以显示底部(堆栈)viewcontroller标题的可伸缩按钮.但我希望做的是有图标(比如HOME的房子),没有文字,也没有调整大小.

使用我的自定义图像和下面的代码,我得到一个拉伸版本(不想要),标题超过顶部(不想要),它点击时突出/突出显示(很好);

UIImage *backButtonImage = [UIImage imageNamed:@"backButton_30.png"];
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:backButtonImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
Run Code Online (Sandbox Code Playgroud)

屏幕截图1

现在,我在这里搜索并阅读所有返回旧答案的类似问题,并为我做了奇怪的结果.这是我试过的代码;

  UIImage *backButtonImage = [UIImage imageNamed:@"backButton_30.png"];
  UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithImage:backButtonImage style:UIBarButtonItemStyleBordered target:nil action:nil];
  self.navigationItem.backBarButtonItem = backButton;
Run Code Online (Sandbox Code Playgroud)

这个方法不会拉伸我的自定义图像按钮(很好),也不会显示文本(我想要的)但是它下面仍然有原始的蓝色按钮(WTF),并且我的自定义按钮在点击时不会着色,只有它下面的蓝色按钮呢!

屏幕截图2

请帮忙,我错过了什么?

*更新

我使用可调整大小的图像修改了一下.这迫使它不要'伸展'

UIImage *backButtonHomeImage = [[UIImage imageNamed:@"backButtonHomeWhite_30.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:backButtonHomeImage  forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
Run Code Online (Sandbox Code Playgroud)

要修复出现在我必须做的按钮上的标题

self.title =@" ";
Run Code Online (Sandbox Code Playgroud)

现在这是一个肮脏的修复,但它似乎工作.现在唯一的问题是我想在不同的视图上使用不同的后退按钮,这种方法会造成一些麻烦; 设置按钮的最后一个视图会覆盖所有其他视图.因此,最终,根据您在应用程序中的导航方式,返回到上一个视图时会出现错误的后退按钮,并且它永远不会重置为正确的后退按钮.


更新2:潜在想法:

以下是一个合理的解决方案,还是一个容易破坏的黑客?

隐藏默认后退按钮,就像这样,

[self.navigationItem setHidesBackButton:YES animated:NO];
Run Code Online (Sandbox Code Playgroud)

...然后使用自定义UIBarButtonItem,其中我实际想要放置在后退按钮位置的样式中的按钮,在点击时将popViewControllerAnimated:消息发送到UINavigationController.

如果您知道更强大的解决方案,请分享,谢谢.

iphone objective-c uibarbuttonitem ios ios5

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

iOS 6中的viewDidLoad调用一次?

抬头:这个问题与最近的弃权有关viewDidUnload.我已经看到围绕这个主题的"伟大"和合乎逻辑的答案,但显然他们被证明是错误的.谨慎行事,如您所见,这个话题非常混乱.

来自Apple的文档:

但是,当视图未附加到窗口时,系统会自动释放这些昂贵的资源.大多数视图使用的剩余内存足够小,系统自动清除和重新创建视图层次结构是不值得的.

所以...我可以安全地假设在iOS 6中,只要我没有将viewController的视图显式设置为nil(手动卸载),viewDidLoad在应用程序的整个生命周期内,只会为任何已分配的viewController实例调用一次?

uikit viewdidload ios ios6

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

如何使用正则表达式进行反向搜索?

例如:
我的字符串是:123456789 nn nn oo nn nn mlm nn203.
我的目标是:nn.

然后,我匹配从结尾到开头的字符串,并返回第一个匹配结果及其位置.
在此检查中,结果nn从[ - 3]中的[-5]结束开始.
我写了简单的funcitonto做这个过程,但如何使用正则表达式来完成这项工作?

python regex search reverse

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