小编rob*_*off的帖子

将转义的UTF8字符转换回原始格式

我正在尝试从一个来自plist的数组中读取字符串并打印这些字符串.

数组中的字符串包含转义的UTF8字符 - 例如,"Nu\u0161a Florjan\u010di\u010d"当从plist中读取时,"NušaFlorjančič"变为.无法更改plist的内容,但我的程序需要正确显示名称.

奇怪的是,当我对字符串进行硬编码时,Objective-C似乎会自动执行此操作.但是,如果我从plist中获取字符串,则根本没有任何事情发生.

举个例子,这里有一些代码:

NSString *name1 = @"Nu\u0161a Florjan\u010di\u010d";
NSString *name2 = [list objectAtIndex:0];       
NSLog(@"name 1: %@", name1);
NSLog(@"name 2: %@", name2);
Run Code Online (Sandbox Code Playgroud)

[list objectAtIndex:0]包含@"Nu\u0161a Florjan\u010di\u010d"- 唯一的区别是它是通过plist编辑器设置的.

控制台输出是:

2011-10-22 18:00:02.595 Test[13410:11c03] name 1: Nuša Florjan?i?
2011-10-22 18:00:02.595 Test[13410:11c03] name 2: Nu\u0161a Florjan\u010di\u010d
Run Code Online (Sandbox Code Playgroud)

我已经尝试过各种各样的事情,包括将字符串转换为C字符串,然后NSString使用UTF-8编码创建一个对象,但根本没有任何工作.

我真的很感激你的任何指示,这可能有助于我解决这个看似平凡的问题.

string cocoa-touch objective-c nsstring ios

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

有没有办法避免到处使用 AnyPublisher/eraseToAnyPublisher?

我只是在学习如何使用Combine。我有使用 Rx(RxSwift 和 RxJava)的经验,我注意到它非常相似。

然而,完全不同(有点烦人)的一件事是Publisher协议不对其OutputFailure类型使用泛型;它使用关联类型代替。

这意味着我无法指定多态Publisher类型(例如Publisher<Int, Error>)并简单地返回符合Publisher这些类型的任何类型。我需要AnyPublisher<Int, Error>改用,我被迫在eraseToAnyPublisher()所有地方都包括在内。

如果这是唯一的选择,那么我会忍受它。但是,我最近还了解了 Swift 中的不透明类型,我想知道是否可以使用它们来解决这个问题。

有没有办法,让我有,比方说,一个函数,返回some Publisher和使用的具体类型OutputFailure

这似乎是不透明类型的完美案例,但我不知道是否有办法既使用不透明类型又指定关联类型。

我正在想象这样的事情:

func createPublisher() -> some Publisher where Output = Int, Failure = Error {
    return Just(1)
}
Run Code Online (Sandbox Code Playgroud)

swift combine opaque-types

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

Swift - 解析字符串中的数学运算

只是一个简短的问题.在Swift中,可以解决以下代码:

var a: String;
a = "\(3*3)";
Run Code Online (Sandbox Code Playgroud)

将解决字符串中的算术运算.但我无法弄清楚,为什么以下这种变化不起作用.

var a: String; 
var b: String;

b = "3*3";
a = "\(b)";
Run Code Online (Sandbox Code Playgroud)

在这种情况下,var a中的算术运算将不会被解析.任何想法为什么以及如何才能开始工作.如果这样可行,有些事情会容易得多.谢谢你的回答.

swift

13
推荐指数
2
解决办法
6103
查看次数

圆形(圆形)UIView使用AutoLayout调整大小...如何在调整大小动画期间为cornerRadius设置动画?

我有一个可以调用的子类UIView CircleView.CircleView会自动将圆角半径设置为其宽度的一半,以使其成为圆形.

问题是当"CircleView"通过AutoLayout约束调整大小时......例如在设备轮换上 ......由于"cornerRadius"属性必须赶上,并且操作系统仅发送,因此在调整大小之前它会严重失真单个"边界"更改为视图的框架.

我想知道是否有人有一个好的,明确的策略来实现"CircleView"的方式在这种情况下不会扭曲,但仍然会将其内容掩盖为圆形并允许在所述UIView周围存在边框.

uiview ios

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

无法更新viewDidLoad中的view.layer.frame?

我试图在我的单一视图控制器项目的viewDidLoad方法中执行以下代码:

self.view.layer.frame = CGRectInset(self.view.layer.frame, 20, 20); 
Run Code Online (Sandbox Code Playgroud)

但它没有给出理想的插图.但是,我在同一方法中进行的其他UI更改确实有效

self.view.layer.backgroundColor = [UIColor orangeColor].CGColor;
Run Code Online (Sandbox Code Playgroud)

上面的代码行工作,背景变为橙色,但框架没有.

只有在viewDidAppear中放置代码行时,插图才有效.如果有人能解释的话,我想了解这种行为的关键原因.先感谢您.

uiviewcontroller uiview ios

12
推荐指数
3
解决办法
9904
查看次数

为什么NSDateFormatter在巴西时区19/10/2014返回null?

NSString *dateString = @"19/10/2014";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"dd/MM/yyyy"];
NSDate *myDate = [dateFormatter dateFromString:dateString];
Run Code Online (Sandbox Code Playgroud)

为什么myDate这个特定日期为空(2014年10月19日)?

如果我更改dateString@"25/10/2014",请dateFormatter正确返回日期...我的代码有什么问题?

*当我的iPhone时区为"Brasilia,Brasil"时,此代码返回null.例如,当我的时区是"华盛顿特区,EUA"时,代码会返回正确的日期.

objective-c nsdateformatter ios

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

最优蚁群定位算法

假设有一个网格包含两个墙(被阻挡的单元格)以及放置在网格上任何位置的食物.

示例网格的图像

现在假设我们正在尝试确定将蚁群放置在该网格上的最佳位置,使得蚂蚁必须行进最小距离(在任何方向上往/来自群体的起始点)以获得最大量的食物.

到目前为止,我提出的最佳方法如下:

for each square on the grid
    use a shortest path algorithm to find the distance to/from each food source from this square
    sum these distances to find a number and put the number in that square
select the square with the smallest number
Run Code Online (Sandbox Code Playgroud)

这种方法是否有效?有更有效的解决方案吗?

algorithm path-finding shortest-path

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

iOS UIImage剪辑到路径

我正在处理用户使用UIBezierPath选择部分图像的图像.如何删除/清除/透明不属于该选择的所有内容?

uiimage ios

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

"预期的方法体"错误

我让我的应用程序工作正常,然后没有做任何事情,我无处不在,我有2个错误appDelegate.h.一说这个:

Objective-C方法的预期选择器

另一个说:

预期的方法体

我不知道为什么会这样,我有其他项目与完全相同的应用程序委托,他们都工作得很好.

这是我的appDelegate.h:

#import <UIKit/UIKit.h>

@interface AppDelegate : UIResponder <UIApplicationDelegate> // I get the errors here

@property (strong, nonatomic) UITabBarController *tbc; 
@property(strong, nonatomic) UIWindow *window;

@end
Run Code Online (Sandbox Code Playgroud)

xcode objective-c

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

在UIScrollView中嵌套的UICollectionView之间的连续垂直滚动

虽然我知道嵌套的scrollViews并不理想,但我们的设计师为我提供了这种设置,所以我尽力让它工作.让我们开始!

查看层次结构

  • 的UIView
    • UIScrollView(仅限垂直滚动)
      • 的UIImageView
      • UICollectionView#1(仅水平滚动)
      • UIImageView(与以前的UIImageView不同)
      • UICollectionView#2(仅垂直滚动)

重要的提示

我的所有视图都是使用程序化自动布局定义的.UIScrollView的子视图层次结构中的每个连续视图都对之前的视图具有y坐标依赖关系.

问题

为简单起见,让我们稍微修改一下命名法:

  • _outerScrollView 会参考 UIScrollView
  • _innerScrollView 会参考 UICollectionView #2

我希望我_outerScrollView将触摸事件路由到_innerScrollView其contentSize的底部.当我向后滚动时,我想反过来发生.

目前,我有以下代码:

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
    CGFloat bottomEdge = [scrollView contentOffset].y + CGRectGetHeight(scrollView.frame);
    if (bottomEdge >= [_outerScrollView contentSize].height) {
        _outerScrollView.scrollEnabled = NO;
        _innerScrollView.scrollEnabled = YES;
    } else {
        _outerScrollView.scrollEnabled = YES;
        _innerScrollView.scrollEnabled = NO;
    }
}
Run Code Online (Sandbox Code Playgroud)

其中初始条件(在任何滚动发生之前)设置为:

outerScrollView.scrollEnabled = YES;
innerScrollView.scrollEnabled = NO;
Run Code Online (Sandbox Code Playgroud)

怎么了?

在触摸视图时,outerScrollView滚动直到其底部边缘,然后具有橡皮筋效果,因为_outerScrollView.bounces = YES;如果我再次触摸视图,则innerScrollView滚动直到它到达其底部边缘.在返回的路上,相反的橡皮筋效果会以相反的顺序发生.我想要发生的是两个子视图之间的流畅运动.

显然,这是由于scrollEnabled代码片段中条件设置的条件.我想弄清楚的是如何在击中边缘时将一个scrollView的速度/速度路由到下一个scrollView.

对此问题的任何帮助将不胜感激. …

objective-c uiscrollview ios uicollectionview ios8

11
推荐指数
2
解决办法
6205
查看次数