小编mag*_*zbc的帖子

类是在两者中实现的,其中一个将被使用.哪一个未定义

我有Cocoapods中包含的依赖项问题.

我有一个Framework项目(MyFramework目标),它也有App目标(MyFrameworkExampleApp).当我尝试运行应用程序时,我得到一个充满错误的控制台,如下所示:

类PodsDummy_AFNetworking在/private/var/containers/Bundle/Application/AD85D7EC-2652-4019-94FB-C799D0FBA69B/MyFrameworkExampleApp.app/Frameworks/MyFramework.framework/MyFramework(0x1019a0438)和/ var/containers/Bundle/Application中实现/AD85D7EC-2652-4019-94FB-C799D0FBA69B/MyFrameworkExampleApp.app/MyFrameworkExampleApp(0x10107c558).将使用两者之一.哪一个未定义.

问题是,错误来自仅包含在MyFramework目标中的库

以下是我的podfile的内容:

# Specify platform.
platform :ios, '9.0'

# Let's ignore all warnings from all pods
inhibit_all_warnings!

target 'MyFramework’ do

    # ReactiveCocoa for easier binding between UI and data models.
    pod 'ReactiveCocoa', '< 3.0'

    # ReactiveViewModel for easier handling of active/inactive view models.
    pod 'ReactiveViewModel', '0.3'

    # An Objective-C extension with some nice helpers including @weakify/@strongify.
    pod 'libextobjc', '~> 0.4.1'

    # AFNetworking Security stuff
    pod 'AFNetworking/Security', '~> 2.5.4'

    # KZPropertyMapper to easily map JSON dicts to …
Run Code Online (Sandbox Code Playgroud)

xcode ios cocoapods

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

UILabel子类 - 尽管标签高度正确,文字仍在底部切断

我有一个问题,UILabel子类切断底部的文本.标签的高度适合文本,底部留有一些空间,但文本仍然被剪掉.

标签

红色条纹是添加到标签图层的边框.

我将标签子类化以添加边缘插入.

override func sizeThatFits(size: CGSize) -> CGSize {
    var size = super.sizeThatFits(size)
    size.width += insets.left + insets.right
    size.height += insets.top + insets.bottom
    return size
}

override func drawTextInRect(rect: CGRect) {
    super.drawTextInRect(UIEdgeInsetsInsetRect(rect, insets))
}
Run Code Online (Sandbox Code Playgroud)

但是,在这种特殊情况下,插入是零.

uilabel ios swift

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

在 React Native 中,有没有办法识别手写笔(笔)与触摸(手指)事件?

我正在开发 RN 应用程序,该应用程序有一个屏幕,其中包含“可绘制”区域的列表。所以这个屏幕应该是可滚动和可绘制的。

我想做的 - 是找到一种解决方案来区分来自手指(这些将用于滚动和禁止绘图)和通过 Apple Pencil 的手写笔(这些将用于绘图和禁止滚动)的触摸事件。

在 Gesture Responder 和 PanResponder 中,每次移动都会传递事件。每个事件(以及 nativeEvent 都包含type属性。但是,在模拟器和设备中它对我来说始终为空。

有没有办法将移动事件识别为手指与手写笔?

uitouch ios react-native react-native-ios

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

在iOS上签名的数据无法在Java中验证

我有一些数据,我正在SecKeyRawSign使用Elliptic Curve私钥在iOS上签名.但是,使用Signature.verify()返回验证Java中的数据false

数据是一个随机的64位整数,像这样分成字节

uint64_t nonce = (some 64 bit integer)
NSData *nonceData = [NSData dataWithBytes: &nonce length: sizeof(nonce)];
Run Code Online (Sandbox Code Playgroud)

根据该数据,我正在创建一个SHA256摘要

int digestLength = CC_SHA256_DIGEST_LENGTH;
uint8_t *digest = malloc(digestLength);
CC_SHA256(nonceData.bytes, (CC_LONG)nonceData.length, digest);
NSData *digestData = [NSData dataWithBytes:digest length:digestLength];
Run Code Online (Sandbox Code Playgroud)

然后使用私钥对其进行签名

size_t signedBufferSize = kMaxCipherBufferSize;
uint8_t *signedBuffer = malloc(kMaxCipherBufferSize);

OSStatus status = SecKeyRawSign(privateKeyRef,
                                kSecPaddingPKCS1SHA256,
                                (const uint8_t *)digestData.bytes,
                                digestData.length,
                                &signedBuffer[0],
                                &signedBufferSize);

NSData *signedData = nil;
if (status == errSecSuccess) {
    signedData = [NSData dataWithBytes:signedBuffer length:signedBufferSize];
}
Run Code Online (Sandbox Code Playgroud)

一切似乎都很好.

然后,在Java服务器中,我正在尝试验证签名数据

PublicKey publicKey …
Run Code Online (Sandbox Code Playgroud)

java objective-c ios commoncrypto java-security

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

Xcode 10-多个命令产生.app

我有一个使用Xcode 9开发的项目,切换到Xcode 10后,在构建过程中出现错误:

错误:多个命令产生了'SomePath / MyApp.app':
1)目标'MyApp'已创建目录命令,输出为'/SomePath/Kvitt.app'2
)该命令取决于目标'MyApp'中的命令:脚本阶段“ [ CP]“复制广告资源”

我在不同的项目和Info.plist文件中遇到了类似的问题,我使用此答案解决了

但是,这次的错误涉及MyApp.app,并且“ 复制捆绑资源”中没有这样的文件

切换到旧版构建系统可以消除这种情况,但是想知道是什么原因造成的,以及如何在新的构建系统中修复它

有任何想法吗?

xcode ios xcode10

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

测试 SPM 包时 Fastlane 扫描随机失败 - IDEContainerErrorDomain Code=6

我有一个由多个 SPM 包组成的项目。我正在使用 Fastlane 对每个包执行测试,如下所示

lane :tests do
  TEST_PACKAGES.each { |package|
    single_test(package: package, devices: TEST_DEVICES)
  }
end

lane :single_test do |options|
  package = options[:package]
  devices = options[:devices]
  scan(
      package_path: package,
      scheme: package,
      devices: devices,
      output_directory: './' + package  + '/' + TEST_OUTPUT_DIR,
      buildlog_path: TEST_BUILDLOG_PATH,
      derived_data_path: DERIVED_DATA_PATH,
      code_coverage: true,
      result_bundle: true,
      fail_build: false,
      clean: true,
      configuration: "Debug"
    )     
end
Run Code Online (Sandbox Code Playgroud)

问题是,这会随机失败 - 有时在第一个包上,有时在第二个包上,有时在其他包上,并出现与此类似的错误:

错误:错误 Domain=com.apple.dt.IDEContainerErrorDomain 代码=6“无法将“swift-custom-dump”作为“Swift 包代理”打开,因为它已作为“Swift 用户管理的包文件夹”打开。”

出现几个类似的错误,涉及特定包使用的依赖项。

这种行为没有一致性,因为简单地fastlane tests再次调用而不进行任何更改,将导致不同包的测试失败。

可能是什么原因?

ios fastlane swift-package-manager

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

UIBezierPath bezierPathWithArcCenter无法正确居中

我有一个视图,想在其中画一个圆UIBezierPath bezierPathWithArcCenter。我的看法initWithFrame如下:

- (instancetype)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if(self == nil) {
        return nil;
    }

    self.circleLayer = [CAShapeLayer layer];
    self.circleLayer.fillColor = UIColor.clearColor.CGColor;
    self.circleLayer.strokeColor = UIColor.blackColor.CGColor;
    self.circleLayer.lineWidth = 4;
    self.circleLayer.bounds = self.bounds;


    self.startAngle = 0.0;
    self.endAngle = M_PI *  2;
    CGPoint center = CGPointMake(self.frame.size.width * 0.5, self.frame.size.height * 0.5);
    CGFloat radius = self.frame.size.height * 0.45;
    self.circleLayer.path = [UIBezierPath bezierPathWithArcCenter:center radius:radius startAngle:self.startAngle endAngle:self.endAngle clockwise:YES].CGPath;

    [self.layer addSublayer:self.circleLayer];

    self.backgroundColor = UIColor.greenColor;

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

我预计这会在我的视线中产生一个黑色圆圈。但是,实际输出如下所示:
实际产量

我究竟做错了什么?

编辑 最奇怪的部分是,它是在全新安装了该应用程序之后正确绘制的-任何连续启动都会导致它被绘制为如所附图像中所示。为什么?

objective-c ios uibezierpath

5
推荐指数
2
解决办法
959
查看次数

Module AppRegistry 不是已注册的可调用模块

我开始使用 React Native 开发,一开始就遇到了一个问题。当尝试运行我的应用程序时,我收到错误:

不变违规:模块 AppRegistry 不是已注册的可调用模块(调用 runApplication)
未处理的 JS 异常:不变违规:本机模块不能为 null。
未处理的 JS 异常:不变违规:模块 AppRegistry 不是已注册的可调用模块(调用 runApplication)

我的应用程序.js:

import React, { Component } from 'react';
import { SafeAreaView } from 'react-native';
import DefaultRouter from './src/navigation/DefaultRouter'

export default class App extends Component {
  render() {
    return (
      <SafeAreaView>
        <DefaultRouter />
      </SafeAreaView>
      );
    }
  };
Run Code Online (Sandbox Code Playgroud)

索引.js:

import { AppRegistry } from 'react-native';
import App from './App';
import {name as appName} from './app.json';

AppRegistry.registerComponent(appName, () => App);
Run Code Online (Sandbox Code Playgroud)

默认路由器.js:

import { createSwitchNavigator, createAppContainer …
Run Code Online (Sandbox Code Playgroud)

ios react-native

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

iOS 使用 swift 创建通用 Alamofire 请求

最近我开始学习使用 swift 开发 iOS 应用程序,所以我对它很陌生。我想在 swift 中实现 Rest api 调用,发现我们可以使用URLRequest. 所以我写了generic method调用所有类型(如get, put, post)的rest api,如下所示。

import Foundation
//import Alamofire

public typealias JSON = [String: Any]
public typealias HTTPHeaders = [String: String];

public enum RequestMethod: String {
    case get = "GET"
    case post = "POST"
    case put = "PUT"
    case delete = "DELETE"
}
public enum Result<Value> {
    case success(Value)
    case failure(Error)
}
public class apiClient{
    private  var base_url:String = "https://api.testserver.com/"
    private func apiRequest(endPoint: String, …
Run Code Online (Sandbox Code Playgroud)

ios swift alamofire

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

Ionic 4 选项卡:如何创建自定义选项卡

我正在尝试将我的选项卡设计为看起来像链接中显示的那样。

显示我想要的选项卡外观的图像

我目前有默认的选项卡样式,但我不知道如何调整它以使其看起来像链接图像中显示的那样。来自社区的任何帮助将不胜感激。

ionic4

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

Swift 4-'substring(to :)'已过时-我的代码的替代方法

我的代码如下

   var theReview = addReview.text
    let len2 = addReview.text.utf16.count

    if len2 > 3000 {

        theReview = theReview?.substring(to: (theReview?.index((theReview?.startIndex)!, offsetBy: 3000))!)

    }
Run Code Online (Sandbox Code Playgroud)

我的目标是获取文本的前3000个字符(如果长度超过3000个字符)。

但是,我得到以下警告:

不推荐使用'substring(to :)':请使用字符串切片下标以及'partial range upto'运算符

有什么可以替代我的代码。我不是一个非常专业的编码员。因此,任何帮助都会很棒。

ios swift swift4

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