小编Yan*_*Yan的帖子

使用Core Data,iCloud和CloudKit进行同步和备份以及它如何协同工作

我正处于创建应用程序的早期阶段,我希望保存,同步和备份数据.该应用程序不会将任何文件仅存储在数据库中.它将是iOS 8及以上,因此我可以使用CloudKit.我做了一些研究,但仍不清楚Core Data,iCloud和CloudKit如何协同工作.

据了解,CloudKit只是一种从云端获取和检索数据的方法.CloudKit是一种与iCloud同步数据的不同方式吗?

我的问题是:

  1. 如果我确实使用CloudKit,我还需要创建本地核心数据库吗?

    • 如果是,它将自动与iCloud同步,或者我必须调用方法存储到这两个地方?
  2. 如果数据仅存储在云中,则当iOS设备未连接到互联网时,用户可以访问该数据.我读到CloudKit只有有限的缓存.

  3. 如果未启用iCloud帐户,该怎么办?

如果有人能够在离线和在线保存和同步核心数据数据库的过程中分解每种技术的作用.

我目前的理解是:

  • 核心数据用于在本地存储数据

  • iCloud将数据和存储同步到云中

  • CloudKit能够在云中存储和管理数据吗?

我希望我提供了足够的信息来解决这个问题.

core-data ios icloud cloudkit

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

objective-c中的指定初始化程序和便利初始化程序以及如何正确创建它们并将它们绑定在一起

我试图了解哪个应该被指定初始化器和哪个便利初始化器.我读了关于那个主题的苹果文档,但我仍然不确定.指定的初始化程序是否必须具有该类所需的所有值?例如,
这是我创建的第一个指定的初始化程序

-(id)initWithCardCount:(NSUInteger)cardCount usingDeck:(Deck *)deck
{
    self = [super init];
    if (self) {
        for(int i = 0; i<=cardCount;i++){
            Card *card = [deck drawRandomCard];
            if (!card) {
                self = nil;
                break;
            }else{
                self.cards[i] = card;
            }
        }
    }

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

现在adde cardMatchMode属性到这个类,并希望在初始化程序中设置它.为了使类向后兼容并理解初始化器,我保留了我现在拥有的那个并创建另一个初始化器.

-(id)initwithCardCount:(NSUInteger)cardCount usingDeck:(Deck *)deck cardMatchMode:(NSUInteger)matchMode
{

    _cardMatchMode = matchMode;
    return [self initWithCardCount:cardCount usingDeck:deck];;
}
Run Code Online (Sandbox Code Playgroud)

基于apple docs,方便初始化程序必须返回指定初始化程序的值,但问题是我可以在便捷初始化程序中设置此类的额外属性吗?我可以说self.cardMatchMode = matchMode; 还是自我还没有完全初始化?
它确实有效,但我只是想了解这是否是正确的代码,我可以在方便init中访问cardMatchMode属性,或者我必须要 -(id)initwithCardCount:(NSUInteger)cardCount usingDeck:(Deck *)deck cardMatchMode:(NSUInteger)matchMode

作为指定的初始化程序和另一个方便的init和返工代码?谢谢!

/////更新

我在收到错误

-(id)initwithCardCount:(NSUInteger)cardCount usingDeck:(Deck *)deck cardMatchMode:(NSUInteger)matchMode
Run Code Online (Sandbox Code Playgroud)

当我试图做self = [self initWithCardCount:(NSUInteger)cardCount usingDeck:(Deck*)deck; …

initialization objective-c ios

7
推荐指数
2
解决办法
8304
查看次数

有没有办法将某些文件排除在提交到iOS应用商店之外

我正在开发一个应用程序,我想提交给商店,我有一些文件是项目的一部分,我不想成为存档的一部分.

例如,我制作但不会用于此版本的应用程序的一些视图控制器文件或我正在读入数据库的一些数据文件,这些文件在发行版中不需要.

我是否必须在创建存档之前删除所有内容,或者我可以选择如何选择不包含它们.故事板上的一些视图控制器也是额外的,我还要删除它们吗?

提前致谢!

xcode objective-c ios

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

无法在Xcode 4.3.3中设置编译器标志

我试图设置编译器标志来禁用某些文件的弧,当我双击或按其中一个文件时,我没有收到对话框.它发生在一个新的项目和旧的,我之前已经设置了编译器标志.按下输入并失去焦点后,它只会变成灰色.是否有其他人有同样的问题或我可能做错了什么.

谢谢!

xcode ios

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

如何在应用程序商店xcode 4.4.1上安装XCode 4.5GM?

我在这里寻找这个问题的答案,但找不到任何东西.我之前遇到过GM版xcode的问题,想知道做什么的程序.我从应用程序商店安装了XCode 4.4.1,我想安装4.5 GM.是否只能在机器上安装或升级?删除4.4.1并安装GM版本或等待一周是否有意义,xcode将自动更新.

我只是不想安装这个,然后必须重新安装应用程序商店版本,因为然后升级将通过应用程序商店安装.

提前致谢!

xcode ios

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

是否可以使用Testflight和crashreport与crashlytics进行分发

我使用testflight分发我的应用程序的测试版,有时登录到网站有问题.我想试试crashlytics,但我读到有两个问题同时使用两者.我可以不包含testflight SDK并仍然可以使用它分发beta吗?这是正常的做法还是我应该坚持一个?那么使用hockeyapp呢?

此外,对于使用crashlytics的人,您首先要求用户允许发送崩溃报告.

PS如果这个问题不适合stackoverflow请告诉我stackexchange的位置

先感谢您!

ios testflight

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

Facebook SDK在生成DSYM信息时会产生数百个警告

我使用新的Crashlytics/Fabric SDK以及Facebook SDK更新了我的应用程序,现在我在为crashlytics生成调试信息时收到数百条警告.我四处搜索并更改了许多构建设置,但仍然收到警告.调试信息格式设置为"DWARF with dSYM",我认为crashlytcs是必需的.我在其他链接器标志中设置了$(继承).位代码设置为否.不确定我应该更改哪些其他设置以消除警告并能够生成正确的dSYM文件.我正在使用Xcode 7.2并为iOS 9.2构建.

这是一个警告示例:

while processing /Users/Yan/Documents/FacebookSDK/FBAudienceNetwork.framework/FBAudienceNetwork(FBCache.o):
warning: /var/folders/h9/zf2xtlkd12z1_ygkj8hplkhh17xrbq/C/org.llvm.clang.dzhuowen/ModuleCache/1VMMO06OSVUBF/Foundation-3DFYNEBRQSXST.pcm: No such file or directory
while processing /Users/Yan/Documents/FacebookSDK/FBAudienceNetwork.framework/FBAudienceNetwork(FBCache.o):
warning: /var/folders/h9/zf2xtlkd12z1_ygkj8hplkhh17xrbq/C/org.llvm.clang.dzhuowen/ModuleCache/1VMMO06OSVUBF/Foundation-3DFYNEBRQSXST.pcm: No object file for requested architecture
while processing /Users/Yan/Documents/FacebookSDK/FBAudienceNetwork.framework/FBAudienceNetwork(FBCache.o):
warning: /var/folders/h9/zf2xtlkd12z1_ygkj8hplkhh17xrbq/C/org.llvm.clang.dzhuowen/ModuleCache/1VMMO06OSVUBF/UIKit-1V5UHAPTOD24G.pcm: No such file or directory
while processing /Users/Yan/Documents/FacebookSDK/FBAudienceNetwork.framework/FBAudienceNetwork(FBCache.o):
warning: /var/folders/h9/zf2xtlkd12z1_ygkj8hplkhh17xrbq/C/org.llvm.clang.dzhuowen/ModuleCache/1VMMO06OSVUBF/UIKit-1V5UHAPTOD24G.pcm: No object file for requested architecture
while processing /Users/Yan/Documents/FacebookSDK/FBAudienceNetwork.framework/FBAudienceNetwork(FBCache.o):
warning: /var/folders/h9/zf2xtlkd12z1_ygkj8hplkhh17xrbq/C/org.llvm.clang.dzhuowen/ModuleCache/1VMMO06OSVUBF/Darwin-38I6DLZ5IH61J.pcm: No such file or directory 
while processing /Users/Yan/Documents/FacebookSDK/FBAudienceNetwork.framework/FBAudienceNetwork(FBCache.o):
warning: Could not resolve external type c:objc(cs)NSCache
while processing /Users/Yan/Documents/FacebookSDK/FBAudienceNetwork.framework/FBAudienceNetwork(FBCache.o):
warning: Could not resolve external type c:objc(cs)NSMapTable …
Run Code Online (Sandbox Code Playgroud)

facebook objective-c ios

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

setFetchBatchSize似乎无法正常工作

我就这个主题提出几个问题,但仍然无法使其发挥作用.我有一个核心数据,有10k +行的人名,我在tableview中显示.我希望能够用每个字母搜索和更新表格.这是非常迟钝的.正如我所建议的那样,我观看WWWDC '10核心数据演示并试图实施

[request setFetchBatchSize:50];
Run Code Online (Sandbox Code Playgroud)

似乎没有用.当我使用工具检查核心数据时,它仍然显示在加载tableview时仍有10k请求,当我搜索它时也获得所有结果.是否还需要做任何其他事情来设置批量大小或那些不会对我有帮助的东西.

唯一可行的方法是在搜索时将fetchlimit设置为100.你认为这是一个很好的解决方案吗?

提前致谢!

core-data objective-c nsfetchrequest ios

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

ActivityIndi​​cator不会停止在UICollectionViewCell中设置动画或从superview中删除

我正在尝试实现UICollectionView和显示图像.我正在使用SDWebimage哪个在tableviewcells中完美运行但是当我尝试使用它时UICollectionviewCell它不会停止并删除activityindicator.如果没有下载的图像,它会放置占位符图像.我不确定tableviewcell和collectionviewcell之间可能导致此问题的区别.

这是代码:

-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"personImageCell";

    PersonCollectionViewCell *cell = (PersonCollectionViewCell *)[collectionView dequeueReusableCellWithReuseIdentifier:CellIdentifier forIndexPath:indexPath];
    Person *person = [self.fetchedResultsController objectAtIndexPath:indexPath];
    NSString *imgURL=[person.imageurl stringByAppendingString:@"?maxheight=300&maxwidth=400"];

    UIActivityIndicatorView *activityIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
    activityIndicator.hidesWhenStopped = YES;
    activityIndicator.hidden = NO;
    [activityIndicator startAnimating];
    activityIndicator.center = CGPointMake(cell.ivPersonImage.frame.size.width /2, cell.ivPersonImage.frame.size.height/2);
    [cell.ivPersonImage setImageWithURL:[NSURL URLWithString:imgURL] placeholderImage:nil options:SDWebImageProgressiveDownload success:^(UIImage *image, BOOL cached){
        [activityIndicator stopAnimating];[activityIndicator removeFromSuperview];
        NSLog(@"activity indicator should be removed");
    }failure:^(NSError *error){
        [activityIndicator stopAnimating];[activityIndicator removeFromSuperview];
        cell.ivPersonImage.image = [UIImage imageNamed:@"placeholder.png"];
    }]; …
Run Code Online (Sandbox Code Playgroud)

objective-c ios uicollectionview uicollectionviewcell

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

有没有办法自定义UISearchDisplayController单元格

我正在使用UISearchDisplayController进行搜索,并希望在每个单元格中添加更多元素(如果可能的话).做了一些搜索但找不到任何信息.唯一的方法是使用tableview重现它.是否还有其他属性可以设置为textlabel.text

提前致谢!

objective-c ios

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

如何使用parse.com和facebook 3.0 sdk获取共享对话框

我似乎无法找到有关如何使用包含fb 3.0的解析sdk打开共享对话框的信息.我能够登录Facebook并实际上找到了一种方法来发布对话框,但仍然希望有对话框,以便人们可以添加评论,它与Facebook上的图像一起出来.这就是我到目前为止所拥有的.@"publish_stream",@"publish_actions"允许我在没有对话框的情况下发布

 logInController.facebookPermissions = [NSArray arrayWithObjects:@"user_about_me",@"friends_about_me",@"publish_stream",@"publish_actions", nil];
Run Code Online (Sandbox Code Playgroud)

这是要发布

PF_FBRequest *request = [PF_FBRequest requestForPostStatusUpdate:[self.Excerpt objectForKey:@"text"]];
                [request startWithCompletionHandler:^(PF_FBRequestConnection *connection, id result, NSError *error){
                    NSLog(@"error %@",error);

                }];
Run Code Online (Sandbox Code Playgroud)

我找到了从Facebook网站打开对话框的代码,但我不知道如何获取PF_Facebook对象的实例,以便我可以打开对话框.我可以尝试做

PF_Facebook *fb = [[PF_Facebook alloc]initWithAppId:<#(NSString *)#> andDelegate:<#(id<PF_FBSessionDelegate>)#>;
Run Code Online (Sandbox Code Playgroud)

但这似乎不对,因为我已经在appdelegate初始化了这个

//更新我可以使用此代码获取对话框

NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                   @"Facebook SDK for iOS", @"name",
                                   @"Build great social apps and get more installs.", @"caption",
                                   @"The Facebook SDK for iOS makes it easier and faster to develop Facebook integrated iOS apps.", @"description",
                                   @"https://developers.facebook.com/ios", @"link",
                                   @"https://raw.github.com/fbsamples/ios-3.x-howtos/master/Images/iossdk_logo.png", @"picture",
                                   nil];
    //publishes text on facebook
    PF_FBSession …
Run Code Online (Sandbox Code Playgroud)

share facebook objective-c ios parse-platform

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