小编kil*_*anc的帖子

错误"将非本地对象的地址传递给__autoreleasing参数以进行回写"

我正在将我的套接字客户端转换为ARC:

- (id)initWithHostname:(NSString *)hostname AndPort:(NSInteger)port
{
    if((self = [super init]))
    {
        oBuffer = [[NSMutableData alloc] init];
        iBuffer = [[NSMutableData alloc] init];

        iStream = [[NSInputStream alloc] init];
        oStream = [[NSOutputStream alloc] init];

        [NSStream getStreamsToHost:[NSHost hostWithName:hostname] port:port inputStream:&iStream outputStream:&oStream];

        ...
    }

    return self;
}
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

file://localhost /...foo.m:错误:自动引用计数问题:将非本地对象的地址传递给__autoreleasing参数以进行回写

在"&iStream"/"&oStream"的这一行

[NSStream getStreamsToHost:[NSHost hostWithName:hostname] port:port inputStream:&iStream outputStream:&oStream];
Run Code Online (Sandbox Code Playgroud)

有帮助吗?

cocoa objective-c

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

解耦React组件和Redux Connect

如此处所示,我试图尽可能地解耦我的应用程序组件,并使他们不知道任何存储或操作创建者.

目标是让他们管理自己的状态并调用函数来发出变化.我被告知你使用道具这样做.

考虑到

// Menu.jsx

import React from 'react'
import { className } from './menu.scss'
import Search from 'components/search'

class Menu extends React.Component {
  render () {
    return (
      <div className={className}>
        <a href='#/'>Home</a>
        <a href='#/foo'>foo</a>
        <a href='#/bar'>bar</a>
        <Search />
      </div>
    )
  }
}
Run Code Online (Sandbox Code Playgroud)

// Search.jsx

import React from 'react'
import { className } from './search.scss'

class Search extends React.Component {
  render () {
    let { searchTerm, onSearch } = this.props

    return (
      <div className={`search ${className}`}>
        <p>{searchTerm}</p>
        <input …
Run Code Online (Sandbox Code Playgroud)

reactjs redux

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

在Lion 10.7上以编程方式创建并打开带有ARC的NSWindow

我无法弄清楚如何在没有笔尖的情况下分配和打开一个新的NSWindow.

NSRect frame = NSMakeRect(100, 100, 200, 200);
NSUInteger styleMask =    NSBorderlessWindowMask;
NSRect rect = [NSWindow contentRectForFrameRect:frame styleMask:styleMask];
NSWindow * window =  [[NSWindow alloc] initWithContentRect:rect styleMask:styleMask backing: NSBackingStoreBuffered    defer:false];
[window setBackgroundColor:[NSColor blueColor]];
[window makeKeyAndOrderFront: window];
Run Code Online (Sandbox Code Playgroud)

上面的代码取自此线程如何以编程方式创建Cocoa窗口?

cocoa objective-c

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

XCode 4.4.1忽略LD_RUNPATH_SEARCH_PATHS

我正在处理XCode的奇怪行为:

dyld: Library not loaded: /Library/Frameworks/SBJson.framework/Versions/A/SBJson
Run Code Online (Sandbox Code Playgroud)

基本上它忽略了实际的my Runpath Search Path(LD_RUNPATH_SEARCH_PATHS)配置@loader_path/../Frameworks.

我暂时无法加载任何嵌入式框架:/

otool

otool -L /Users/kilian/Library/Developer/Xcode/DerivedData/r-ghohkslxtxgpnuepmblogfjtuefx/Build/Products/Debug/r.app/Contents/MacOS/r
/Users/kilian/Library/Developer/Xcode/DerivedData/r-ghohkslxtxgpnuepmblogfjtuefx/Build/Products/Debug/r.app/Contents/MacOS/r:
  /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 19.0.0)
  /Library/Frameworks/SBJson.framework/Versions/A/SBJson (compatibility version 1.0.0, current version 37.0.0)
  /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 945.0.0)
  /usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
  /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)
  /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 1186.0.0)
Run Code Online (Sandbox Code Playgroud)

PS如果您想知道我是否将副本添加到框架构建阶段,答案是肯定的.

xcode cocoa objective-c sbjson

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

cordova和crashlytics beta构建脚本

我正在尝试编写一个脚本文件来构建我的apk并将其上传到Crashlytics beta但没有成功.

echo "\n > cordova build android\n"
cordova build android --release

echo "\n > signing apk\n"
jarsigner \
  -storepass $STOREPASS \
  -sigalg SHA1withRSA \
  -digestalg SHA1 \
  -keystore $KEYSTORE \
  $APK_PATH \
  $NAME

mkdir -p releases
zipalign -f -v 4 \
  $APK_PATH \
  $TARGET_PATH
Run Code Online (Sandbox Code Playgroud)

该脚本运行得很好,但是当我跑的时候

java -jar scripts/crashlytics-devtools.jar \
  -projectPath $PROJECT_PATH \
  -androidManifest $PROJECT_PATH/AndroidManifest.xml \
  -androidRes $PROJECT_PATH/res \
  -androidAssets $PROJECT_PATH/assets \
  -apiKey $FABRIC_API_KEY \
  -apiSecret $FABRIC_BUILD_SECRET \
  -uploadDist $APK \
  -verbose
Run Code Online (Sandbox Code Playgroud)

它给了我一个 Exception in thread "main" com.crashlytics.tools.android.DeveloperTools$PluginException: Crashlytics halted …

android cordova crashlytics

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

bash:错误处理和函数

我试图在循环中调用一个函数,并在它抛出时优雅地处理和继续。

如果我省略|| handle_error它只会像人们期望的那样停止整个脚本。

如果我离开|| handle_error那里,它将foo is fine在错误发生后打印并且根本不会执行handle_error。这也是预期的行为,这就是它的工作方式。

#!/bin/bash

set -e

things=(foo bar)

function do_something {
  echo "param: $1"

  # just throw on first loop run
  # this statement is just a way to selectively throw
  # not part of a real use case scenario where the command(s)
  # may or may not throw
  if [[ $1 == "foo" ]]; then
    throw_error
  fi

  # this line should not be executed when $1 is …
Run Code Online (Sandbox Code Playgroud)

bash

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

使用xcbuild/xcrun和xcconfig为cordova ios应用程序添加64位支持

我正在开发一个cordova应用程序,我设法使用脚本从命令行创建ipa.

echo "" > $PROJECT_DIR/cordova/build.xcconfig
echo "CODE_SIGN_IDENTITY = iPhone Distribution: XXXXXXX" >> $PROJECT_DIR/cordova/build.xcconfig
echo "CODE_SIGN_RESOURCE_RULES_PATH = \$(SDKROOT)/ResourceRules.plist" >> $PROJECT_DIR/cordova/build.xcconfig
echo "IPHONEOS_DEPLOYMENT_TARGET = 7.0" >> $PROJECT_DIR/cordova/build.xcconfig

cordova build ios --device

xcrun \
  -sdk iphoneos PackageApplication \
  -v "$PRODUCT_DIR/$TARGET.app" \
  -o "$OUTDIR/$TARGET.ipa" \
  --embed "$PROVISONING_PROFILE" \
  --sign "$IDENTITY"
Run Code Online (Sandbox Code Playgroud)

这很好用,但是当我上传到Apple TestFlight时,我收到此警告.

在此输入图像描述

你们有什么暗示吗?也许我可以添加一行.xcconfig似乎非常方便!

xcode ios cordova

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

具有'iboutlet'属性的属性必须是对象类型(无效'BOOL'(又名'signed char'))

将我的项目更新到10.7 SDK并切换调试器之后,我得到了以下消息:

Property with 'iboutlet' attribute must be an object type (invalid 'BOOL' (aka 'signed char'))
Run Code Online (Sandbox Code Playgroud)

在更新之前它完全正常工作.任何关于如何解决这个问题的提示?

cocoa objective-c nib

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

ENV 变量中的 Google Cloud Run 和 JSON

我正在部署一个使用config. NODE_CONFIG被读取并用于取代任何本地配置。这在部署带有机密的服务时非常方便,因为可以从外部注入配置。

当尝试使用 Google Cloud Run 和 CLI 实现此目的时,我收到转义错误。显然 CLI 仅支持字典。

JSON有没有更好的方法通过环境变量传递内容?

gcloud run deploy pr-$PULL_REQUEST \
  --platform=managed \
  --revision-suffix=$revision \
  --region us-central1 \
  --set-env-vars="NODE_ENV=development,NODE_CONFIG='$json'" \
  --allow-unauthenticated \
  --image gcr.io/...
Run Code Online (Sandbox Code Playgroud)

google-cloud-run

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