小编dre*_*kka的帖子

iPhone:如何用动画切换标签?

我正在使用标签栏驱动的应用程序中以编程方式切换选项卡UITabBarController.selectedIndex.我试图解决的问题是如何设置视图之间的过渡动​​画.即.从当前选项卡的视图到所选选项卡的视图.

第一个想法是使用UITabBarControllerDelegate它,但似乎在编程切换选项卡时不会调用它.我现在正在考虑UITabBarDelegate.didSelectItem:作为设置过渡动画的可能钩子.

有没有人设法为过渡动画?如果有,怎么样?

uitabbarcontroller uitabbar ios4

106
推荐指数
7
解决办法
5万
查看次数

Swift Equatable on a protocol

我不认为这可以做,但无论如何我都会问.我有一个协议:

protocol X {}
Run Code Online (Sandbox Code Playgroud)

一节课:

class Y:X {}
Run Code Online (Sandbox Code Playgroud)

在我的其余代码中,我使用协议X引用所有内容.在该代码中,我希望能够执行以下操作:

let a:X = ...
let b:X = ...
if a == b {...}
Run Code Online (Sandbox Code Playgroud)

问题是,如果我尝试实现Equatable:

protocol X: Equatable {}
func ==(lhs:X, hrs:X) -> Bool {
    if let l = lhs as? Y, let r = hrs as? Y {
        return l.something == r.something
    }
    return false
} 
Run Code Online (Sandbox Code Playgroud)

尝试允许使用==隐藏协议背后的实现的想法.

Swift不喜欢这个,因为它EquatableSelf引用,它将不再允许我将它用作类型.仅作为一般参数.

那么有没有人找到一种方法将一个运算符应用于一个协议,而协议不会作为一种类型变得无法使用?

protocols ios swift equatable

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

Xcodebuild'工作区并设置自定义构建路径

我正试图xcodebuild在工作区中构建一个多项目项目.当XCode构建工作空间时,它会自动将所有构建工件放在DerivedData的公共目录中,以便每个项目都可以访问它的依赖项.

如果我使用此命令:

xcodebuild -workspace myWorkspace.xcworkspace -schema builtIt -configuration Release
Run Code Online (Sandbox Code Playgroud)

Eveything可以工作,但工件放在通常的派生数据目录中.我希望然后出现在我可以从CI构建中访问的特定目录中.所以我尝试了这个

xcodebuild -workspace myWorkspace.xcworkspace -schema builtIt -configuration Release SYMROOT=build/products OBJROOT=build/intermediates
Run Code Online (Sandbox Code Playgroud)

然而xcodebuild失败了这个说法

Details:  Failed to load dependencies output contents from ``/Users/d4rkf1br3/projects/dNodi/build/intermediates/dNodi.build/Debug-iphoneos/dNodi.build/StaticAnalyzer/normal/armv7/DNRootSelector.d''. 
Error: Error Domain=NSCocoaErrorDomain Code=260 "The file “DNRootSelector.d” couldn’t be opened because there is no such file." 
UserInfo=0x4012fea40 {NSFilePath=/Users/d4rkf1br3/projects/dNodi/build/intermediates/dNodi.build/Debug-iphoneos/dNodi.build/StaticAnalyzer/normal/armv7/DNRootSelector.d, NSUnderlyingError=0x4012fc240 "The operation couldn’t be completed. No such file or directory"}. 
User info: {
    NSFilePath = "/Users/d4rkf1br3/projects/dNodi/build/intermediates/dNodi.build/Debug-iphoneos/dNodi.build/StaticAnalyzer/normal/armv7/DNRootSelector.d";
    NSUnderlyingError = "Error Domain=NSPOSIXErrorDomain Code=2 \"The operation couldn\U2019t be completed. No such file or …
Run Code Online (Sandbox Code Playgroud)

workspace xcodebuild

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

在Liquid标签中使用过滤器

我正在使用jekyll和Liquid在github页面上生成一个静态网站.

我想根据文档中的内容量是否达到特定数量的作品来做出一些内容决定.jekyll有一个液体过滤器,用于计算我想在if标签中使用的单词数.我试过这个:

{% if page.content | number_of_words > 200 %} 
    ...
{% endif %} 
Run Code Online (Sandbox Code Playgroud)

但它似乎没有用.我还尝试将结果分配给变量并使用它,并捕获过滤器的输出.但到目前为止,我没有运气.

有人设法在液体标签中使用过滤器吗?

tags filter liquid jekyll

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

使用Objective-C运行时查找声明它们符合特定协议的类

我正在试图找出一种方法来"标记"将在稍后编写的类,以便我可以在运行时找到它们,但不强制使用特定的父类.目前我正在考虑应用协议,然后找到所有具有该协议的类.

但我无法弄清楚如何.

有谁知道是否有可能找到在运行时实现特定协议的所有类?或者 - 有没有更好的方法来"标记"类并找到它们?

runtime objective-c

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

iOS&node.js:如何验证传递的访问令牌?

我有一个iOS,它使用OAuth和OAuth2提供商(Facebook,谷歌,推特等)来验证用户并提供访问令牌.除了名称和电子邮件地址等最小数据外,应用程序不会将这些服务用于除身份验证之外的任何其他服务.

然后,应用程序将访问令牌发送到服务器,以指示用户已通过身份验证.

服务器是用Node.js编写的,在做任何事情之前,需要根据正确的OAuth*服务验证提供的访问令牌.

我一直在环顾四周,但到目前为止,我发现的所有node.js身份验证模块似乎都是用于登录并通过服务器提供的网页进行身份验证.

有没有人知道任何可以对提供的访问令牌进行简单验证的node.js模块?

authentication oauth node.js

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

Jackson SerializationFeature.WRITE_DATES_AS_TIMESTAMPS在春天没有关闭时间戳

经过大量的搜索后,我在我的@RestController转换为JSON响应时,跟踪了如何阻止java.util.Date字段被序列化为时间戳.

但是我无法让它发挥作用.我发现的所有帖子都说要禁用Jackson objet映射器的SerializationFeature.WRITE_DATES_AS_TIMESTAMPS功能.所以我写了下面的代码:

public class MVCConfig {

    @Autowired
    Jackson2ObjectMapperFactoryBean objectMapper;

    @PostConstruct
    public void postConstruct() {
        this.objectMapper.setFeaturesToDisable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
    }
}
Run Code Online (Sandbox Code Playgroud)

据我所知,配置也是一个bean,所以在对象映射器中自动连接以设置其他属性应该可行.我使用了断点,这个设置看起来一切都很好.

但是当我在对http查询的响应中使用java.util.Date属性序列化bean时,我仍然得到一个时间戳.

有谁知道为什么这不起作用?这让我很难过!

serialization spring json jackson

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

iOS:在运行时找不到NSURLSession类别方法

我想在NSURLSession上创建一个类别.该应用程序编译好,但当我尝试调用我得到的类别方法

-[__NSCFURLSession doSomething]: unrecognized selector sent to instance 0xbf6b0f0
<unknown>:0: error: -[NSURLSession_UPnPTests testCategory] : -[__NSCFURLSession doSomething]: unrecognized selector sent to instance 0xbf6b0f0
Run Code Online (Sandbox Code Playgroud)

很奇怪,这是我为了显示问题而构建的测试类.NSString上的类别工作正常,但NSURLSession上的类别无法在运行时找到该方法.我怀疑这是内部的东西.

意见请:-)

#import <XCTest/XCTest.h>

@interface NSString (test)
-(void) doSomethingHere;
@end

@implementation NSString (test)
-(void) doSomethingHere {
    NSLog(@"Hello string");
}
@end

@interface NSURLSession (test)
-(void) doSomething;
@end

@implementation NSURLSession (test)
-(void) doSomething {
    NSLog(@"Hello!!!!");
}
@end

@interface NSURLSession_UPnPTests : XCTestCase
@end

@implementation NSURLSession_UPnPTests
-(void) testCategory {
    [@"abc" doSomethingHere];
    NSURLSession *session = [NSURLSession sharedSession];
    [session doSomething];
}
@end
Run Code Online (Sandbox Code Playgroud)

categories ios nsurlsession

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

Swift:是否可以在协议中添加协议扩展?

可以说我有两个协议:

protocol TheirPcol {}
protocol MyPcol {
    func extraFunc()
}
Run Code Online (Sandbox Code Playgroud)

我想要做的是为'TheyPcol'创建一个协议扩展,它允许extraFunc()处理任何符合'TheyPcol'的东西.所以像这样:

extension TheirPcol : MyPcol { // Error 'Extension of protocol 'TheirPcol' cannot have an inheritance clause.
    func extraFunc() { /* do magic */}
}

struct TheirStruct:TheirPcol {}
let inst = TheirStruct()
inst.extraFunc()
Run Code Online (Sandbox Code Playgroud)

这里的踢球者是'TheyPcol','TheyStruct'都是由我无法控制的外部API处理的.所以我通过了'inst'实例.

可以这样做吗?或者我将不得不做这样的事情:

struct TheirStruct:TheirPcol {}
let inst = TheirStruct() as! MyPcol
inst.extraFunc()
Run Code Online (Sandbox Code Playgroud)

extension-methods protocols swift

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

为什么 Flutter 不生成国际化文件?

我正在尝试遵循https://flutter.dev/docs/development/accessibility-and-localization/internationalization#dart-toolshttps://docs.google.com/document/d/10e0saTfAv32OZLRmONy866vnaw0I2jwL8zukykpgWBc/ 中的国际化文档编辑#heading=h.upcu5w85cvc2但它没有生成任何文件。

基本上它说将这些 mod 制作到 pubspec.yaml文件中:

dependencies:
  flutter:
    sdk: flutter
  flutter_localizations:
    sdk: flutter
  intl: ^0.17.0-nullsafety.2
flutter:
  generate: true
Run Code Online (Sandbox Code Playgroud)

然后创建一个<project-root>/l10n.yaml包含以下内容的文件:

arb-dir: lib/l10n
template-arb-file: app_en.arb
output-localization-file: app_localizations.dart
Run Code Online (Sandbox Code Playgroud)

最后app_en.arb用这样的东西创建:

{
  "@@locale": "en",

  "helloWorld": "Hello World!",
  "@helloWorld": {
    "description": "The conventional newborn programmer greeting"
  }
}
Run Code Online (Sandbox Code Playgroud)

从那里导游说 flutter_gen/gen_l10n/app_localizations.dart将自动生成文件。

除了什么都没有发生。我在 Android Studio 工作并做了一个pub get,并尝试了一个flutter cleanflutter build ios以及我想不到的其他所有内容,但没有构建该文件。

有任何想法吗?

internationalization flutter

10
推荐指数
7
解决办法
6751
查看次数