小编Mik*_*ail的帖子

xCode 6 beta 7:故事板在左右两侧增加了额外的空间

当我将子视图添加到根ViewController的视图,并且使用自动布局设置leadingSpace,trailingSpace,topSpace和bottomSpace为零时,左右两侧会出现一些额外的空格(所以如果我打印子视图的框架,它的原点将是16并且尺寸更小在32比应该是).所以实际上我们得到的前导和尾随空格不是零...

在此输入图像描述

正如您在图片前导空间中看到的那样 - 零,但是origin.x = 16

早些时候我没有努力使用自动布局,所以我的问题是:它是新的xCode或功能的错误吗?

PS更新所有帧和约束.

storyboard ios uistoryboard autolayout xcode6

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

RxJava:链接可观察量

是否可以使用RxJava实现下一个链接:

loginObservable()
   .then( (someData) -> {
      // returns another Observable<T> with some long operation
      return fetchUserDataObservable(someData);

   }).then( (userData) -> {
      // it should be called when fetching user data completed (with userData of type T)
      cacheUserData(userData);

   }).then( (userData) -> {
      // it should be called after all previous operations completed
      displayUserData()

   }).doOnError( (error) -> {
      //do something
   })
Run Code Online (Sandbox Code Playgroud)

我发现这个库非常有趣,但无法想象我们如何将请求链接到彼此依赖于之前的地方.

java android scala promise rx-java

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

Cocoapods:重复的接口定义

我把我的私人图书馆包裹成了cocoapods.它依赖于ReactiveCocoa.

s.name =  'MineLibrary'
s.dependency 'ReactiveCocoa/Core'
s.source_files = 'Source/*.{h,m,swift}'
....
Run Code Online (Sandbox Code Playgroud)

一些头文件包含:

#import <ReactiveCocoa/RACSignal.h>
Run Code Online (Sandbox Code Playgroud)

我把它包含在一个新项目中:

use_frameworks!
....
pod 'ReactiveCocoa'
pod 'MineLibrary', :git => 'git@.....'
Run Code Online (Sandbox Code Playgroud)

但是当我编译项目时,我收到一个错误:

duplicate interface definition for class 'RACStream'
duplicate interface definition for class 'RACSignal'


/Users/USER/Library/Developer/Xcode/DerivedData/Project-emcwpmbbuimotuftzijeemvngrvj/Build/Products/Debug-iphoneos/Pods/ReactiveCocoa.framework/Headers/RACStream.h:27:1: error: duplicate interface definition for class 'RACStream'

@interface RACStream : NSObject
^
/Users/USER/Workspace/Project/Pods/ReactiveCocoa/ReactiveCocoa/RACStream.h:27:12: note: previous definition is here
@interface RACStream : NSObject
Run Code Online (Sandbox Code Playgroud)

如何解决?
PS我正在使用cocoapods 0.36.0.rc.1

xcode ios cocoapods swift xcode6

12
推荐指数
2
解决办法
7319
查看次数

Objective-C和Class Cluster模式

我已经阅读了有关类集群模式的一些信息,并且接下来会理解:

  • 公共集群类只提供没有实际实现的接口,其他类为不同的情况实现它;

  • 它与抽象工厂模式有一些相似之处:当我们调用方法时,+classNameWith...它依赖于参数可以选择最合适的子类并返回它.

例如,+[NSNumber numberWithDouble:1.0]将返回用于存储double值的实现.

但是我不明白的是:-init...公共集群类的工作方法如何: [[NSNumber alloc] initWithDouble:1.0]在调用alloc它之后已经分配了实例NSNumber,而不是它的子类.

那么,有人可以解释实际上alloc-init公共集群类的方法是如何工作的,以及具体的子类何时实例化并返回?

design-patterns objective-c ios

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

iOS:复数和自定义语言环境

我正在开发支持“en”和“ru”语言的应用程序,用户可以在应用程序内选择语言。

如果默认手机的语言环境设置为“en”,但在应用程序中选择了“ru”语言,则在尝试本地化复数句时会忽略“many”/“few”形式。所以它被英语复数规则本地化。

定义:

<key>%d files</key>
    <dict>
        <key>NSStringLocalizedFormatKey</key>
        <string>%#@files@</string>
        <key>files</key>
        <dict>
            <key>NSStringFormatSpecTypeKey</key>
            <string>NSStringPluralRuleType</string>
            <key>NSStringFormatValueTypeKey</key>
            <string>d</string>
            <key>one</key>
            <string>???? ????</string>
            <key>many</key>
            <string>%d ??????</string>
            <key>other</key>
            <string>%d ?????</string>
        </dict>
    </dict>
Run Code Online (Sandbox Code Playgroud)

本地化代码(手动创建“ru”语言环境):

let locale = NSLocale(localeIdentifier: "ru_RU")
String(format: NSLocalizedString("%d files", comment: ""),
                    locale: locale,
                    count)
Run Code Online (Sandbox Code Playgroud)

作为输出,我得到:
for count = 1: “???? ????” - 它
适合 count = 2:“2 ?????” -
count = 6也是正确的(来自“其他”类别):“6 ?????” - 错误,也来自“其他”类别,但应来自“许多”

如果我将手机的语言切换为俄语,则所有语言都已正确本地化。

iphone localization ios nslocale ios7

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

在尝试实现查找或插入时,HashMap借用了问题

我试图实现自己的模拟find_or_insert方法,如下所示:

use std::collections::HashMap;

pub struct SomeManager {
    next: i32,
    types: HashMap<i32, i32>,
}

impl SomeManager {
    pub fn get_type<'a>(&'a mut self, k: i32) -> &'a i32 {
        match self.types.get(&k) {
            Some(ref x) => return *x,
            None => {
                self.types.insert(k, self.next);
                self.next += 1;
                return self.types.get(&k).unwrap();
            }
        }
    }
}

fn main() {}
Run Code Online (Sandbox Code Playgroud)

错误:

error[E0502]: cannot borrow `self.types` as mutable because it is also borrowed as immutable
  --> src/main.rs:13:17
   |
10 |         match self.types.get(&k) {
   |               ---------- immutable borrow …
Run Code Online (Sandbox Code Playgroud)

rust

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