小编Whe*_*rdy的帖子

IBOutlets,实例变量和属性:最佳实践

关于声明IBOutlets和实例变量,管理它们,使用正确的访问器并正确释放它们,我今天已经完成了各种关于最佳实践的研究.我几乎就在那里,但我有一些利基问题,我希望有人能够建议最好的做法.我将它们格式化为代码并对问题进行评论,以便更容易理解.我已经排除了一些我认为不相关的明显部分,可以安全地假设它们起作用(比如预处理器的东西,@ end,所需的实现方法等).

MyViewController.h

@class OtherViewController;

@interface MyViewController : UIViewController {

     NSString *_myString;
     BOOL _myBOOL;

}

// The first two properties aren't declared in the interface
// above as per best practices when compiling with LLVM 2.0

@property (nonatomic, retain) OtherViewController *otherViewController;
@property (nonatomic, retain) UIButton *myButton;
@property (nonatomic, copy) NSString *myString;
@property (readwrite) BOOL myBOOL;
Run Code Online (Sandbox Code Playgroud)

MyViewController.m

@implementation MyViewController

// Synthesizing IBOutlets on iOS will cause them to be
// retained when they are created by the nib

@synthesize otherViewController;
@synthesize …
Run Code Online (Sandbox Code Playgroud)

memory properties objective-c ios

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

使用javascript闭包将参数附加到匿名函数中的默认参数

我想在Google地理编码器API调用中添加一些额外的参数,因为我在循环中运行它,但我不知道如何将闭包参数附加到已经具有默认参数的匿名函数,该默认参数通过调用传入API.

例如:

for(var i = 0; i < 5; i++) {
     geocoder.geocode({'address': address}, function(results, status) {
         // Geocoder stuff here
     });
}
Run Code Online (Sandbox Code Playgroud)

我希望能够在传递的geocoder.geocode()匿名函数中使用i的值,但是如果我}(i));在第4行使用了一个闭包,例如它将替换第一个会破坏地理编码器的参数.

有没有办法可以使用闭包,或者将i的值传递给匿名函数?

有效的我想做的是:

geocoder.geocode({'address': address}, function(results, status, i) {
    alert(i); // 0, 1, 2, 3, 4
}(i));
Run Code Online (Sandbox Code Playgroud)

但工作:-)

javascript closures google-geocoder

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

如何确定音轨是否为杜比定向逻辑II(Dolby Pro Logic II)混音

我试图找出是否有一种方法可以确定是否使用Dolby Pro Logic II数据对AAC编码的音轨进行了编码。有没有一种检查文件的方式,以便您可以查看此信息?例如,我已经在Handbrake中使用(截断为音频选项)对媒体文件进行了编码-E av_aac -B 320 --mixdown dpl2,这是显示的音频轨道mediainfo

Audio #1
ID                                       : 2
Format                                   : AAC
Format/Info                              : Advanced Audio Codec
Format profile                           : LC
Codec ID                                 : 40
Duration                                 : 2h 5mn
Bit rate mode                            : Variable
Bit rate                                 : 321 Kbps
Channel(s)                               : 2 channels
Channel positions                        : Front: L R
Sampling rate                            : 48.0 KHz
Compression mode                         : Lossy
Stream size                              : 288 MiB (3%)
Title                                    : Stereo / Stereo
Language                                 : …
Run Code Online (Sandbox Code Playgroud)

audio aac audio-processing handbrake dolby

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

在 IAM 角色策略中定位联合 SAML 用户

我们目前使用 G Suite 作为我们 AWS SAML 访问的 IDP,它在少数账户中扮演一个角色,让我们的 G Suite 用户访问某些 AWS 资源。每个帐户都有一个类似命名的角色,G Suite 用户可以担任该角色以授予他们对该帐户中某些资源的访问权限,这些资源都按预期工作。

我正在研究是否可以配置该假定角色,以便为某些用户提供对某些资源的更细粒度的访问权限,而不必为 G Suite 本身内的不同用户分配完全不同的角色。

例如,如果账户中承担的角色名为“assumed_gsuite_ro”并且不授予对 IAM 的访问权限,您会在 IAM 控制台中收到如下错误:

User: arn:aws:sts::0012345678900:assumed-role/assumed_gsuite_ro/matt@domain.com is not authorized to perform: iam:GetAccountSummary on resource: *
Run Code Online (Sandbox Code Playgroud)

所以我想添加一些类似的东西到posed_gsuite_ro 角色策略中,让我的联合用户在 IAM 中访问它:

...
{
    "Sid": "IAMTest",
    "Effect": "Allow",
    "Action": [
        "iam:GetAccountSummary",
        "iam:ListAccountAliases"
    ],
    "Resource": "*",
    "Condition": {
        "ArnEquals": {
            "aws:SourceArn": "arn:aws:sts::0012345678900:assumed-role/assumed_gsuite_ro/matt@domain.com"
        }
    }
}
...
Run Code Online (Sandbox Code Playgroud)

但是,这不起作用,因为 SourceArn 显然不匹配。我可以使用的条件值是否允许我定位 AWS 似乎知道的特定联合用户?我在想像 aws:userid 或 aws:username 这样的东西可能会起作用,但我不确定在这种情况下它们的值是什么。

roles saml amazon-iam google-workspace

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

在Go中设置全局条件变量

我想根据ENV var的值在全局包级别中在Go中有条件地解析和设置变量,这样我就不必每次都在实用函数中检查它(因为变量会被声明一次在运行时).例如,我想要完成的是(Go伪代码):

import (
    "fmt"
    "os"
    "strconv"
)

// This works to read the value of MYVAR (=true/false)
var myvar string = os.Getenv("MYVAR")

// Apparently this is too much for Go
var myvarbool, _ = strconv.ParseBool(myvar)

// Utility function to check for value
func mycheck() {
    if myvarbool {
        fmt.Print("MYVAR is true")
    }
}
Run Code Online (Sandbox Code Playgroud)

这是一个库包,因此没有main()函数来进行这种设置,但是我希望能够在库中的其他函数中使用mycheck(),并且不希望必须读取并在每次调用mycheck()时解析MYVAR.

variables conditional go

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