小编Eya*_*yal的帖子

如何处理多用户数据库

我的应用程序就像很多应用程序 - 它有一个用户输入用户名和密码的登录屏幕,以及一个登录按钮我的应用程序也使用Core Data来保存大多数用户的业务对象,当然这是用户特定的.

我还有一个注销按钮,可以切换用户.这不会发生很多,但仍然是必要的).

现在,如果其他用户登录,我需要获取他的特定数据.但是我该怎么办呢?
我不想在他注销时删除用户的数据库,即使其他用户从设备登录也要保存.

我唯一能想到的是为每个通过Core Data保存的Entity添加一个"ownerId"属性,并在我获取对象时将此属性用作谓词.
但这似乎太乱了.

database persistence core-data user-data ios

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

目标c - 文本缩进

这个问题是关于在iOS中实现文本缩进("将文本放在更远的位置以将其与周围文本分开").

以下面的文字为例:

  1. 这是第一部分.
  2. 这是第二个,
    有两行.
  3. 这是第三个.

请注意,第2部分中的第二行从右侧开始,在上方的线下方.

我的代码包含一个数组NSString,每个应该显示为带有上面数字项目符号的部分.例如:

NSArray *array = [NSArray arrayWithObjects:@"1. This is the first section.", @"2. This is the second one, with two lines.", @"3. This is the third.", nil];
Run Code Online (Sandbox Code Playgroud)

我用来UILable在屏幕上显示文字.
要将文本从数组设置为标签,并将我使用的新行中的每个字符串分开

myLabel.text = [array componentsJoinedByString:@"\n"];
Run Code Online (Sandbox Code Playgroud)

任何想法如何获得这种效果?

iphone objective-c uilabel core-text ios

9
推荐指数
2
解决办法
6407
查看次数

导出视频时iphone 5S慢动作消失了

我想让我的应用程序的用户从他的相机胶卷中选择一个视频并播放它,
所以我创建了自己的自定义选择器(需要自定义UI)来选择视频,当用户选择我AVAssetExportSession用来导出视频资产的视频时到mp4文件.

如果您不知道新的iPhone 5S可以选择在视频上应用慢动作.然而,当我以慢动作导出视频时,慢动作消失了.

我怀疑在视频资产上有一些代表慢动作部分的额外数据,视频的女性部分的商店信息应该以较低的FPS播放.

我之前在照片上遇到了类似的问题,例如,如果您使用其中一个原生iOS滤镜或裁剪编辑照片,而不是使用AVAsset将照片加载到图像视图,您将看到原始照片(没有滤镜或裁剪) ).只有在检查ALAssetRepresentation 元数据"AdjustmentXMP"键并相应地应用之后CIFilter,您才能获得编辑后的图像.

有任何想法吗?

iphone objective-c ios

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

NSProgress奇怪的行为

我有一个由几个子任务组成的大任务.我想为这项重大任务添加进度报告.
为了我想要使用NSProgress,并根据类文档,我可以通过使用其子 - 父机制来做这种子任务进展.

所以为了简化它,让我说我有一个由一个子任务组成的大任务(当然在现实生活中会有更多的子任务).这就是我所做的:

#define kFractionCompletedKeyPath @"fractionCompleted"  

- (void)runBigTask {
    _progress = [NSProgress progressWithTotalUnitCount:100]; // 100 is arbitrary 

    [_progress addObserver:self
                forKeyPath:kFractionCompletedKeyPath
                   options:NSKeyValueObservingOptionNew
                   context:NULL];

    [_progress becomeCurrentWithPendingUnitCount:100]; 
    [self subTask];
    [_progress resignCurrent];
} 

- (void)subTask {
    NSManagedObjectContext *parentContext = self.managedObjectContext; // self is AppDelegate in this example
    NSManagedObjectContext *bgContext = [[NSManagedObjectContext alloc]initWithConcurrencyType:NSPrivateQueueConcurrencyType];
    [bgContext setParentContext:parentContext];

    [bgContext performBlockAndWait:^{
        NSInteger totalUnit = 1000;
        NSInteger completedUnits = 0;
        NSProgress *subProgress = [NSProgress progressWithTotalUnitCount:totalUnit];

        for (int i=0; i < totalUnit; i++) {   

            // run some …
Run Code Online (Sandbox Code Playgroud)

core-data objective-c ios nsprogress

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

从UIImagePickerController摄像头视图中推送viewController

我正在开发一个消息传递应用程序(类似于WhatsApp),用户可以相互发送文本和图像消息.

当用户想要发送图像时,他可以从相机胶卷中选择一个,或者他可以用相机拍摄一个.

这就是我UIImagePickerController为两种情况提出的方式:

- (void)handleTakePhoto
{
    UIImagePickerController *ipc = [[UIImagePickerController alloc] init];

    ipc.delegate = self;
    ipc.sourceType = UIImagePickerControllerSourceTypeCamera;

    [self presentModalViewController:ipc animated:YES];
    [ipc release];
}

- (void)handleChooseFromLibrary
{
    UIImagePickerController *ipc = [[UIImagePickerController alloc] init];
    ipc.delegate = self;
    ipc.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;

    NSString *desired = (NSString *)kUTTypeImage;
    if ([[UIImagePickerController availableMediaTypesForSourceType:UIImagePickerControllerSourceTypePhotoLibrary] containsObject:desired]) {
        ipc.mediaTypes = [NSArray arrayWithObject:desired];
    }

    [self presentModalViewController:ipc animated:YES];
    [ipc release];
}
Run Code Online (Sandbox Code Playgroud)

在用户选择/拍摄照片之后,我正在推动SendImageViewController以全屏显示图像并且具有实际发送图像的按钮.

这是我推动它的方式:

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];


    SendImageViewController *sivc = …
Run Code Online (Sandbox Code Playgroud)

iphone objective-c uiimagepickercontroller ios

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

在iOS上分享视频到Instagram

是否可以在Instagram上分享视频而不将其保存到用户的相机胶卷?

这是我到目前为止所尝试的:

let instagramURL = URL(string: "instagram://app")!
  if (UIApplication.shared.canOpenURL(instagramURL)) {

      self.documentController = UIDocumentInteractionController(url: videoURL)
      self.documentController.delegate = self
      self.documentController.uti = "com.instagram.exlusivegram"
      self.documentController.presentOpenInMenu(from: self.view.frame, in: self.view, animated: true)

  } else {
      print(" Instagram isn't installed ")
  }  
Run Code Online (Sandbox Code Playgroud)

videoURL是我保存在Documents文件夹中的视频的URL.
如果我Instagram.igo在最后保存URL ,那么当我选择Instagram分享它时会打开如下:
在此输入图像描述

如果我在最后用.mov保存视频,那么Instagram分享似乎会打开一张照片(如视频缩略图),而不是视频.

ios uidocumentinteraction instagram uiactivityviewcontroller

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

服务器到客户端的消息传递是否依赖于APNS?

我正在开发一个消息传递应用程序,我对如何从服务器向客户端发送数据感到困惑.

我正在使用集中式服务器设计,客户端使用该设计NSURLConnection向服务器发送消息,服务器不保留和管理打开的套接字,也无法为其中一个客户端发送消息.因此,客户端使用计时器并每2秒查询服务器以查看新数据是否在等待它们.

这种方法的问题是每2秒轮询一次服务器似乎会非常快地杀死电池,所以我想也许不是客户端轮询服务器,使用APNS*所以当服务器有一些新的信息**为客户端,服务器将向客户端发送推送通知 ***,然后客户端将从服务器获取数据.

*使用APNS - 如果客户端允许,客户端当然可以禁用此选项.因此,我将检查每次应用程序进入前台时是否允许推送,如果不是,我将返回到轮询方法.

** 新信息可以是从短信到服务器管理员消息的任何内容.(并且有很多管理员消息......)
例如,在我的应用程序中,用户可以看到他们的朋友状态(在线/离线),因此如果user1和user2是朋友,而user2只是将他的状态从在线更改为离线,然后服务器需要将此新信息(admin message = user2_offline)发送给user1.

*** 推送通知服务器发送是空的(没有数据/声音),它只是客户端获取新信息的触发器,因此如果推送被发送到客户端并且客户端应用程序关闭,他将不会注意什么.(如果应用程序正在运行,那么它将从服务器获取新信息)

这种方法是否适用于需要大量推送通知用途的大型消息应用程序?

为了更清楚我的主要关注点是:
1.APNS是否足够可靠,我可以将它用作我的核心服务器到客户端消息传递机制?
2.苹果每天会从我的服务器批准数千或数十万个推送通知吗?

iphone objective-c push-notification apple-push-notifications ios

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

目标c - 显示从远程服务器播放音频时的缓冲进度

我正在使用AVPlayer远程服务器播放音频.

我想显示一个显示缓冲进度和"播放时间"进度的进度条,就像MPMoviePlayerController播放电影时一样.

是否AVPlayer有任何显示此信息的UI组件?如果没有,我如何获得此信息(缓冲状态)?

谢谢

iphone objective-c avaudioplayer ios avplayer

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

UIImagePickerController在相机胶卷中打开

是否可以直接打开相机胶卷UIImagePickerController但仍有后退按钮进入相册列表?

UIImagePickerControllerSourceTypeSavedPhotosAlbum 将仅打开相机胶卷而无需滑回相册.

iphone objective-c uiimagepickercontroller ios

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

如果推送控制器隐藏标签栏,UISearchBar会跳转

我的UI结构如下:

UITabBarController(TBC) - > UINavigationController(NC) - > UITableViewController(TVC)

(为了简化示例,我们可以说TBC在其viewControllers阵列上只有一个控制器--NC)

我的TVC具有UISearchBar表格标题,当TVC出现时,我通过设置表格视图内容偏移量隐藏NC导航栏下方的搜索栏.

当用户点击TVC中的一个单元时,按下另一个视图控制器(VC)并隐藏标签栏VC.hidesBottomBarWhenPushed = YES;

现在有一个非常令人讨厌的行为,我不知道如何解决:
当用户轻按后退按钮VCTVC,搜索栏跳转到是可见的,即使它是隐藏的(导航栏下方)的前VC是推.

仅当TVC没有足够的行来填充屏幕时才会出现此效果,如果屏幕上有某个位置,它就像搜索栏一样强制自己可见.但它真的看起来很糟糕和马车.

我上传了一个演示问题的简单项目,它与我在问题中描述的结构相同.
为方便起见,我添加了两个小节按钮,"隐藏栏"按钮为您隐藏搜索栏,"切换计数"按钮切换表格视图行计数,以证明只有少数项目才会出现问题.

iphone objective-c uitabbarcontroller uisearchbar ios

6
推荐指数
2
解决办法
2233
查看次数