小编Toy*_*dor的帖子

如何从文件中删除本地化

我正在尝试取消本地化xib和storyboard文件,并将所有字符串保留在Localizable.strings中.我如何在XCode中执行此操作?

我试图在文件检查器中取消选中所有语言,但是如果我删除最后一种语言,整个文件就会消失.

在此输入图像描述

未本地化的文件如下所示:

在此输入图像描述

添加新语言或使用xliff导出本地化时,不会显示未本地化的文件.

xcode localization ios

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

TestFlight应用程序到期后会发生什么?

我正在iTunesConnect中使用预发布工具,您可以将应用程序分发给一组测试人员.似乎在几天之后应用程序在启动后立即崩溃(在显示的启动屏幕之后).没有错误日志.

我想知道这是否与所有TestFlight应用程序似乎拥有的30天到期有关,或者可能是我的代码中的某些内容导致它?

itunesconnect ios testflight

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

检查快速操作可用性

我正在使用仅支持的主屏幕快速操作IOS9.UIApplicationLaunchOptionsShortcutItemKey如果使用常量将使用崩溃IOS8.检查是否支持快速操作的正确方法是什么?

一种方法是IOS9通过systemVersion 检查,但我希望有更好的方法. [[UIDevice currentDevice] systemVersion]

iphone objective-c ios 3dtouch

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

IOS 11 MKMapview在改变帧或旋转时改变缩放级别

我有一个MKMapView,我用这样的代码扩展和收缩:

UIView.animate(withDuration: 0.5) {
   mapView.frame = CGRect(x: 0, y: 0, width: 200, height: 400)
}
Run Code Online (Sandbox Code Playgroud)

在IOS 11之前,上述代码将regionDidChangeAnimated在动画完成后触发委托方法.它会改变它的区域并让缩放级别.

在IOS 11中,只是缩放变化.没有触发任何委托方法.

我需要像以前一样拥有它.更改地图框架应该只是使可见区域更大而不变焦.

我在尝试mapView.isZoomEnabled = false更改mapViews帧之前尝试设置,但缩放级别不断变化.

更新:

我添加了两个动画GIF来比较IOS 11和以前的IOS版本.

在扩展动画开始之前,IOS 11将立即放大.在完成反向动画后,它将缩小.

如下所示,IOS 9动画像丝绸一样光滑.


IOS 11:

在此输入图像描述


IOS 9:

在此输入图像描述

animation mkmapview ios ios11

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

使用libfdk_aac编译FFmpeg

我一直在阅读如何将mp3转换为m4a,并发现如果我将使用AAC编码器libfdk_aac,我必须编译FFmpeg.

但是阅读关于如何使用libfdk_aac编译FFmpeg的FFmpeg指南对于像我这样的初学者来说没有任何意义.

要使用libfdk_aac,编码指南会说:

需要使用--enable-libfdk_aac --enable-nonfree配置ffmpeg.

我在哪里放这些旗帜?

我把它放在某处吗?:

cd ~/ffmpeg_sources
git clone --depth 1 git://github.com/mstorsjo/fdk-aac.git
cd fdk-aac
autoreconf -fiv
./configure --prefix="$HOME/ffmpeg_build" --disable-shared
make
make install
make distclean
Run Code Online (Sandbox Code Playgroud)

或者也许在某处?

cd ~/ffmpeg_sources
git clone --depth 1 git://source.ffmpeg.org/ffmpeg
cd ffmpeg
PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig"
export PKG_CONFIG_PATH
./configure --prefix="$HOME/ffmpeg_build" \
  --extra-cflags="-I$HOME/ffmpeg_build/include" --extra-ldflags="-L$HOME/ffmpeg_build/lib" \
  --bindir="$HOME/bin" --extra-libs="-ldl" --enable-gpl --enable-libass --enable-libfdk-aac \
  --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx \
  --enable-libx264 --enable-nonfree --enable-x11grab
make
make install
make distclean
hash -r
Run Code Online (Sandbox Code Playgroud)

如果我正在阅读编译指南,我想这两个代码块是我编译FFmpeg所需要的.

我正在使用Ubuntu服务器12.4

UPDATE

将我的系统升级到Ubuntu 16.04后,我不得不再次安装ffmpeg.我还需要libfdk-aac.幸运的是,http://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu上有关如何编译ffmpeg的详细分步指南.

我想我会分享如何编译,如果只是有兴趣用libfdk-aaclibmp3lame编译ffmpeg . …

ffmpeg aac converter ubuntu-12.04

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

禁用在为其框架设置动画时向mapView添加注释

我使用UIView动画为我的mapView框架制作动画:

     [UIView animateWithDuration:0.25f animations:^{
           self.mapView.frame = frame;
        } completion:nil];
}
Run Code Online (Sandbox Code Playgroud)

在使用上面的内容扩展mapView时,我看到mapView正在添加错误的注释,直到动画结束.动画完成后,放错位置的注释会消失.

展开地图时,调用如下:

  1. animateWithDuration开始
  2. MapView类:regionWillChangeAnimated
  3. MapView类:didAddAnnotationViews
  4. MapView类:regionDidChangeAnimated
  5. animateWithDuration完成

我最小化地图时没问题可能是因为没有调用mapView:didAddAnnotationViews.

我可以在动画时以某种方式禁用mapviews regionWillChange吗?

动画前:

之前

动画中途.看到很多错失的注释.

中间

动画完成了.所有错失的注释都消失了.

后

annotations objective-c mkmapview ios

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

PHP:会话永不过期

昨晚我登录,第二天早上我仍然登录,即使我退出浏览器.我希望会话在几个小时后过期,我认为它可以用"session.gc_maxlifetime"设置为"1440","session.cache_expire"设置为"180"

这是我从PHP.ini中可以找到的内容

Session Support                 enabled
Registered save handlers        files user
Registered serializer handlers  php php_binary wddx


session.auto_start        Off
session.bug_compat_42     Off
session.bug_compat_warn   Off
session.cache_expire      180
session.cache_limiter     nocache
session.cookie_domain     no value
session.cookie_httponly   Off
session.cookie_lifetime   0
session.cookie_path       /
session.cookie_secure     Off
session.entropy_file      no value
session.entropy_length    0
session.gc_divisor        1000
session.gc_maxlifetime    1440
session.gc_probability    0
session.hash_bits_per_character  5
session.hash_function     0
session.name              PHPSESSID
session.referer_check     no value
session.save_handler      files
session.save_path         /var/lib/php5
session.serialize_handler php
session.use_cookies       On
session.use_only_cookies  On
session.use_trans_sid     0
Run Code Online (Sandbox Code Playgroud)

在我们的旧服务器上,我们使用相同的设置和会话.与旧版本的唯一区别是在旧服务器上设置为"memcache"的"session.save_handler"."session.save_path"也不同.

php apache ubuntu session session-timeout

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

NSKeyedArchiver线程安全吗?

我是否需要担心使用archiveRootObject,并unarchiveObjectWithFile在后台线程?

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    [NSKeyedArchiver archiveRootObject:myArray toFile:file];
});
Run Code Online (Sandbox Code Playgroud)

iphone objective-c thread-safety nskeyedarchiver ios

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

为什么只有一名代表?

我已经读过一个对象一次只能有一个委托.但这是真的吗?

假设我使用协议创建一个对象,并且我希望从该对象中收集来自其他几个对象的大量数据.我将符合我的协议的每个对象添加到一个数组中.然后我循环遍历它并在每个代理上调用我的方法.

NSMutableArray *collectFromDelegates = [NSMutableArray alloc]init];

//in delegateArray I keep pointers to every delegate.
for(id delegate in delegateArray){
  [collectFromDelegates addObject:[delegate someProtocolMethod]];
}
Run Code Online (Sandbox Code Playgroud)

这是错的吗?

cocoa-touch objective-c ios

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

核心数据不同的提取给出空数组

我花了几个小时试图获取工作.我需要摆脱重复,所以我认为我可以遵循这个指南核心 - 数据 - 如何做一个选择 - 不同 但它总是给我一个空数组.

这是我的代码:

NSFetchRequest *request = [[NSFetchRequest alloc] init];

NSEntityDescription *entity = [NSEntityDescription entityForName:@"RBTag" inManagedObjectContext:[self context]];
request.entity = entity;
request.propertiesToFetch = [NSArray arrayWithObject:[[entity propertiesByName] objectForKey:@"name"]];
request.returnsDistinctResults = YES;
request.resultType = NSDictionaryResultType;

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES];
[request setSortDescriptors:[NSArray arrayWithObject:sortDescriptor]];


NSError *error = nil;
NSArray *distincResults = [[self context] executeFetchRequest:request error:&error];


NSLog(@"Result: %@", distincResults);
Run Code Online (Sandbox Code Playgroud)

我没有错.我检查了NSPropertyDescription,它找到了我的财产.如果我评论出来:

request.resultType = NSDictionaryResultType;
Run Code Online (Sandbox Code Playgroud)

然后我得到结果,但它并不明显.=(

iphone core-data nsfetchrequest ios ios6

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