小编Jor*_*ith的帖子

我怎样才能重新创建TweetBot样式的"下拉"单元格菜单?

应用程序'TweetBot'在每个单元格下方都有一个下拉菜单,当单击该单元格时会出现该菜单.菜单显示为不同的单元格,位于抽头单元格的正下方.这是一个(相当大的)截图,使其更清晰:

TweetBot

这个界面的想法完全适合我正在创建的应用程序.由于需要正确匹配cell/indexPaths,因此它并不像听起来那么直接.我对如何实现这个有一些想法 - 但是:

您将如何实现此功能(或者如果您已经完成此功能,您是如何实现此功能的?)或者甚至更好 - 是否已经有任何开源实现?

iphone objective-c uitableview ipad

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

iCloud和核心数据.NSFetchedResultsController在初始同步时不会更新

iCloud和Core Data运行良好.除了...

在初始应用程序启动时(现有的iCloud数据存在),NSFetchedResultsControllers不会在接收到的数据通过时更新.NSFetchedResultsController委托只是不被调用.在强制退出并重新启动应用程序时,所有数据都应该存在.

核心数据代码与此处的优秀教程相同.我觉得这个代码没有错,因为我已经将它用于另一个应用程序,并且没有这个问题.

其他信息:我的托管对象上下文初始化为主队列并发.我唯一能想到的是,我可以捕获初始数据 - 在应用程序最初启动后几秒钟就会调用以下函数.但是,尽管数据通过,但现有的获取结果控制器似乎没有相应更新(但是再次创建它们会显示数据).


- (void)storesWillChange:(NSNotification *)notification {
    NSManagedObjectContext *context = self.managedObjectContext;

    [context performBlockAndWait:^{
        NSError *error;

        if ([context hasChanges]) {
            BOOL success = [context save:&error];

            if (!success && error) {
                // perform error handling
                NSLog(@"%@",[error localizedDescription]);
            }
        }

        [context reset];
    }];

}
Run Code Online (Sandbox Code Playgroud)


那么:我该怎么做才能开始查明为什么NSFetchedResultsControllers没有按原样更新?

iphone core-data objective-c ipad ios

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

iOS上的Facebook Connect - 图片不显示墙贴

我使用Facebook提供的演示项目设置Facebook连接我的应用程序.一切都很好,除了最后一小步......

  • 首先,我登录并获得权限.

  • 接下来,我上传一张图片.这很好用,我可以看到我的Facebook相册中的图片就像我应该能够的那样.

  • 上传此图片后,我会获取它的URL(由FBRequest代理返回).将此URL粘贴到Web浏览器中会直接将我带到图像,因此我知道此URL是正确的.

这是问题所在:

  • 我现在想把这张照片放在一个墙贴上.墙贴很好,但图片似乎没有附加,状态保留为纯文本消息.

这是我在最后一部分使用的代码:

- (void)request:(FBRequest *)request didLoad:(id)result {

    NSString* picUrl = [result objectForKey:@"src_big"];  //this definitely returns the right URL

    if (picUrl)
    {
        NSString *message = @"Test status";
        NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                       message, @"message", picUrl, @"picture", @"Look at my photo", @"name", nil];

        [facebook requestWithMethodName:@"facebook.Stream.publish" andParams:params
                          andHttpMethod:@"POST" andDelegate:self];
    }
}
Run Code Online (Sandbox Code Playgroud)

我缺少什么或做错了什么想法?

iphone facebook objective-c ios

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

迁移Core Data存储时出现错误消息

问题:

我有一些非常简单的代码(下面)在' migratePersistentStore'错误消息期间导致异常

Exception:*** -[__NSArrayM replaceObjectAtIndex:withObject:]: object cannot be nil
Run Code Online (Sandbox Code Playgroud)


代码:

NSPersistentStore * oldStore = [_persistentStoreCoordinator persistentStores][0];

if (oldStore) {

    @try {

        [_persistentStoreCoordinator migratePersistentStore:oldStore 
              toURL:[self storeURL] 
              options: @{ NSPersistentStoreRemoveUbiquitousMetadataOption : @YES } 
              withType:NSSQLiteStoreType error:&error];

    }
    @catch(NSException* ex) {

        NSLog(@"Exception:%@", ex.description);

    }

}
Run Code Online (Sandbox Code Playgroud)


更多信息:

  • 看来如果没有数据,则不会发生异常.相反,相同的函数设置错误,userInfo" 无法两次添加相同的存储 ".
  • 我目前正在制作一个小型的简单项目来尝试复制问题,一旦完成,我会在这里发布一个链接.

iphone core-data objective-c ipad ios

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

iOS Launch Storyboard:如何更改Tab Bar的色调颜色?

我在做什么:

使用"发布故事板".它非常简单,并包含一个默认的UITabBarController.我在发布故事板和我的应用程序中将标签栏的'tintColor'设置为红色.我正在使用Xcode 7,iOS 9.

什么行不通:

启动屏幕使用默认的蓝色iOS色调加载标签栏......!然后在加载后,当更换启动屏幕故事板时,色调颜色会切换为红色.


你究竟想在故事板中设置标签栏的色彩?

演示项目:http://s000.tinyupload.com/?file_id = 73998115878034693063

interface-builder uitabbarcontroller ios uistoryboard swift

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

选中后,我可以阻止单元格的披露指示器变为白色吗?

我有一个单元格,其中附件类型设置为披露指示器,通过:

cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
Run Code Online (Sandbox Code Playgroud)

现在选中后,默认情况下会变为白色.

因为我已经通过单元格的'backgroundView'和'selectedBackgroundView'属性更改了默认选择样式/视图,所以我希望披露指示器保持灰色,因为它看起来会更好.

是否有一种简单的方法可以做到这一点,而无需创建自定义披露指标图像并将其添加到单元格?

iphone objective-c uitableview ipad ios

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

iOS Today Extension:可以在我的应用程序中动态启用和禁用吗?

默认情况下,只要安装了应用,今天的扩展程序就会出现在我的应用的扩展程序列表中.

我想知道的是 - 有没有一种方法,有记录或没有记录,可以动态启用或禁用此扩展?通过禁用,我的意思是,如果用户尝试添加它,它甚至不会出现在扩展列表中.

如果有必要,Hacky的答案是可以的,我真的很想能够做到这一点.

cocoa-touch ios ios8 today-extension

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

MKMapView:我如何复制Apple的"查找我的iPhone /朋友"应用程序中看到的"反弹变焦"?

背景

MKMapView提供了几种方法,可以让您设置可见地图rect(或区域,坐标范围等).这些方法具有动画参数,当设置为true时,使用大约0.3秒的线性动画来为变化设置动画.

虽然这很好,但我想复制Apple 在点击地图时在他的" 查找我的朋友"和" 查找我的iPhone"应用程序中使用的动画.如果你自己尝试一下,你会发现一个非线性曲线的动画要快得多(大约0.15秒).现在,我们称之为"反弹 - 缩放"过渡.

我想要复制非线性动画曲线和自定义动画持续时间.在UIView的animateWithSpring ...方法中包装地图更新似乎不起作用(我当然可能做错了).非常清楚Apple可能有能力做MKMapView API中没有公开的东西,但Apple的App Store分布式应用程序通常似乎坚持他们关于公共API的指导方针.

这可能吗?如果是这样 - 怎么样?仅仅改变动画持续时间并不是我追求的.我也想控制动画曲线.

示例代码

在这里看到一个试图做上述操场的游乐场.请注意,MKMapView似乎考虑了动画持续时间,但不考虑弹性,例如Find my iPhone/Find my Friends.

iphone mapkit mkmapview ios swift

5
推荐指数
0
解决办法
319
查看次数

是否可以增加一个字母,即在Objective-C中A + 1 = B?

我习惯用C或C++来做这件事,即:

myChar++;
Run Code Online (Sandbox Code Playgroud)

应该递增一封信.

我试图在Objective-C中做同样的事情,除了我有一个NSString开始(NSString总是只有一个字母).我已经尝试将NSString转换为char*,但是这种方法已被弃用,其他实现此方法似乎不起作用.

我应该如何将NSString转换为char* - 或者,有没有办法在objective-c中增加一个字符而不需要char*?

谢谢 :)

iphone objective-c increment char nsstring

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

localizedCaseInsensitiveCompare:和caseInsensitiveCompare之间的区别是什么?

我打算使用以下代码行:

[[NSSortDescriptor alloc] initWithKey:@"title" ascending:YES selector:@selector(caseInsensitiveCompare:)];
Run Code Online (Sandbox Code Playgroud)

'caseInsensitiveCompare'是我习惯在字符串上使用的方法.但是,示例显示我使用的是:

[[NSSortDescriptor alloc] initWithKey:@"title" ascending:YES selector:@selector(localizedCaseInsensitiveCompare:)];
Run Code Online (Sandbox Code Playgroud)

(不同的是本地化的词).这个词做了什么 - "本地化"方法与常规方法有何不同?

关于这两种方法的不同,Apple开发人员文档的信息量不大.

iphone cocoa-touch objective-c ipad ios

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