小编sba*_*row的帖子

覆盖只读变量lldb swift

在lldb中是否有一种方法可以覆盖只读变量.

例如,如果你有一个结构

struct Object {
    let name: String
}
Run Code Online (Sandbox Code Playgroud)

使用lldb在Xcode的断点处执行以下操作

(lldb) expression object.name = "Tom"
Run Code Online (Sandbox Code Playgroud)

会导致

error: <EXPR>:2:19: error: cannot assign to property: 'name' is a get-only property
Run Code Online (Sandbox Code Playgroud)

我完全理解为什么会发生这种情况,只是想知道在调试过程中是否有一种简单的方法可以解决这个问题?

请注意,这是在Swift&NOT Objective-C中

lldb swift

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

在刷回iOS 7时,将UIKeyboard保持为视图

我有一个视图控制器,可以使用新的interactivePopGestureRecognizer弹出.如果存在键盘并且滑动动画开始,则键盘不随视图移动.我已经看过这个问题并在我的视图控制器中实现了这个问题而被解雇了

-(void)viewWillDisappear:(BOOL)animated
{ 
  [super viewWillDisappear:animated];

  [self.transitionCoordinator animateAlongsideTransitionInView:self.aTextInputView.keyboardSuperView animation:^(id<UIViewControllerTransitionCoordinatorContext> context) {

    CGRect frame = self.aTextInputView.keyboardSuperView.frame;
    frame.origin.x = self.view.frame.size.width;

    self.aTextInputView.keyboardSuperView.frame = frame;

  } completion:nil];
}
Run Code Online (Sandbox Code Playgroud)

现在,当视图动画消失时,我得到的是键盘从屏幕动画到320点的x点,这就像我设置的那样有意义,我的问题是如何通过向后滑动让键盘动画?

更新

对于任何在视图消失时看到奇怪动画的人,您可以通过执行此操作来移除键盘.

[self.transitionCoordinator notifyWhenInteractionEndsUsingBlock:^(id<UIViewControllerTransitionCoordinatorContext> context){
    if (![context isCancelled]) {
        [keyboardSuperview removeFromSuperview];
    }
}];
Run Code Online (Sandbox Code Playgroud)

cocoa-touch core-animation uikeyboard ios ios7

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

docker-compose +外部容器

我使用以下命令启动了一个docker容器

docker run --name mysql --restart always -p 3306:3306 -v /var/lib/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=password -d mysql:5.7.14
Run Code Online (Sandbox Code Playgroud)

然后想将wordpress网站与以下docker-compose.yml文件连接起来

version: '2'

services:
    wordpress:
        image: wordpress
        external_links:
            - mysql:mysql
        ports:
            - 80:80
    environment:
        WORDPRESS_DB_USER: root
        WORDPRESS_DB_PASSWORD: password
    volumes:
        - /var/www/somesite.com:/var/www/html
Run Code Online (Sandbox Code Playgroud)

但我不断收到以下错误

Starting somesitecom_wordpress_1
Attaching to somesitecom_wordpress_1
wordpress_1  | 
wordpress_1  | Warning: mysqli::mysqli(): (HY000/2002): Connection refused in - on line 19
wordpress_1  | 
wordpress_1  | MySQL Connection Error: (2002) Connection refused
Run Code Online (Sandbox Code Playgroud)

好像external_links不行.

知道我做错了什么吗?

docker docker-compose

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

__strong 限定符用于非 ARC 项目

该项目是非 ARC 启用的,但是我们(错误地)使用了符合 ARC 的代码库 - 特别是一个创建单例对象的代码库,如 GCDSingleton.h 中定义的那样:

#define DEFINE_SHARED_INSTANCE
+ (id)sharedInstance
{
  static dispatch_once_t pred = 0;
  __strong static id _sharedObject = nil;
  dispatch_once(&pred, ^{
    _sharedObject = ^{return [[self alloc] init];}();
  });
  return _sharedObject;
}
Run Code Online (Sandbox Code Playgroud)

即使共享对象是用 __strong 限定符定义的,这似乎也有效。我想知道为什么这不会导致错误或至少是警告(最新的 Xcode 4.6 和 ios 6 sdk)。此外,由于该项目未启用 ARC,那么 __strong 限定符究竟在做什么(如果有的话)?

objective-c ios automatic-ref-counting

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

将 1 个字节转换为 int Objective-C

我有一个包含数据的 NSData 数据包。我需要将范围 8, 1 的字节转换为 int。要获取该位置的数据,我执行以下操作。

NSData *byte = [packet subdataWithRange:NSMakeRange(8, 1)];
Run Code Online (Sandbox Code Playgroud)

如果我 NSLog 字节

<01>
Run Code Online (Sandbox Code Playgroud)

我认为如何将其转换为 int?这可能是最基本的问题,但我只是没有做对。

任何帮助,将不胜感激。

更新

有了这些数据,int 应该等于 1。我不确定这是否与 Endian 有任何关系。

c byte objective-c

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

dispatch_after错误:'[AnyObject]?' 不是'Void'的子类型

我试图用这段代码做一个非常简单的延迟弹出到根视图控制器:

let delay = 1 * Double(NSEC_PER_SEC)
let time = dispatch_time(DISPATCH_TIME_NOW, Int64(delay))
dispatch_after(time, dispatch_get_main_queue(), {
  self.navigationController?.popToRootViewControllerAnimated(true)
})
Run Code Online (Sandbox Code Playgroud)

然而我得到的错误'[AnyObject]?' is not a subtype of 'Void'我认为它与调用self.navigationController块/闭包内部有关,因为如果我注释掉那行并用println("Will this compile")它替换就行了.

有人可以解释为什么我收到这个错误,以及实现我想要做的正确方法是什么?

Xcode 6.1.1

谢谢.

grand-central-dispatch ios swift

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

返回 nil 结构而不是空结构 go-gorm

具有以下模型:

type User struct {
    UUID string         `gorm:"primary_key"`
    Name string         `gorm:"NOT NULL"`
    CreatedAt time.Time
    UpdatedAt time.Time
}
Run Code Online (Sandbox Code Playgroud)

如果您使用 go-gorm 对不存在的用户执行以下查询:

var user User
db.First(&user)
Run Code Online (Sandbox Code Playgroud)

您最终会收到一个空结构,其中填充了日期字段。有没有办法只接收nil返回的结构,或者我是否以错误的方式思考这个问题?

go go-gorm

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