小编Pla*_*sma的帖子

indexPathForCell在IOS 7下返回NULL,在IOS 6下工作正常

我希望现在苹果公司能够接受IOS 7的应用,我们可以谈谈它吗?

我正在尝试修复我的应用程序,因此它适用于IOS 7并且今晚取得了一些非常好的进展.我有两个悬而未决的问题,但会分别发布.第一个问题是这一行(我在调试后添加了一个日志行)...

 NSIndexPath *indexPath = [settingsTableView indexPathForCell:(UITableViewCell *)[sender superview]];
 NSLog(@"Changed %@ <-**-> %@", [sender superview], indexPath );
Run Code Online (Sandbox Code Playgroud)

日志显示....

IOS 7

 2013-09-11 22:18:02.985 BusTimes[21013:a0b] Changed <UITableViewCellScrollView: 0xbfc1c80; frame =  (0 0; 320 44); clipsToBounds = YES; autoresize = W+H; gestureRecognizers = <NSArray: 0xbfc1e70>; layer = <CALayer: 0xbfc1540>; contentOffset: {0, 0}> <-**-> (null)

 2013-09-11 22:18:08.577 BusTimes[21013:a0b] Changed <UITableViewCellScrollView: 0xbfc62d0; frame = (0 0; 320 44); clipsToBounds = YES; autoresize = W+H; gestureRecognizers = <NSArray: 0xbfc64c0>; layer = <CALayer: 0xbfc5b90>; contentOffset: …
Run Code Online (Sandbox Code Playgroud)

uitableview ios6 ios7

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

IOS 13 CNContacts不再能够检索所有联系人

我有一个应用程序一直与CNContacts框架完美兼容,直到IOS12。我目前正在使用IOS 13 beta对其进行测试,并且它完全坏了。我已经检查了联系人权限,并删除了该应用程序并重新允许了该权限。这是我用来检索所有联系人的代码:

NSError* error;

CNContactStore *store = [[CNContactStore alloc]init];

[store containersMatchingPredicate:[CNContainer predicateForContainersWithIdentifiers: @[store.defaultContainerIdentifier]] error:&error];

NSArray *keysToFetch =@[CNContactGivenNameKey, CNContactEmailAddressesKey, CNContactNoteKey];

CNContactFetchRequest *request = [[CNContactFetchRequest alloc]initWithKeysToFetch:keysToFetch];

BOOL success = [store enumerateContactsWithFetchRequest:request error:&error usingBlock:^(CNContact * __nonnull contact, BOOL * __nonnull stop){

       NSLog(@"Contact Found: %@", contact.givenName);

}];
Run Code Online (Sandbox Code Playgroud)

联系人存储建立良好,错误为零。但是,当我随后尝试通过获取请求获取联系人时,我获得成功=否,并且收到以下错误:

Error Domain=CNErrorDomain Code=102 "(null)" UserInfo={CNKeyPaths=(
    note
), CNInvalidRecords=(
    "<CNContactFetchRequest: 0x60000189aa00: predicate=(null), keysToFetch=(\n    givenName,\n    emailAddresses,\n    note\n), unifyResults=1, sortOrder=0>"
Run Code Online (Sandbox Code Playgroud)

我已经尝试了各种调整,但是根本无法使用。我也找不到任何文档说明此行为已更改。

是否有其他人也尝试过此方法或找到了解决方法?

xcode objective-c ios cncontact cncontactstore

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

基本的Facebook/Twitter URL处理程序格式

我很确定在发布这个帖子后一小时我可能会找到答案,但我已经找了一个多小时了,似乎无法解决这个问题.所以这里..

我想在我的应用程序中添加一些简单的"联系我们"链接,如果可用的话,可以在其中一个Twitter应用程序中打开我的个人资料...."Twitter","Tweetbot","Twitterriffic"或Facebook回归到如果没有可用的Safari.我不想为twitter等添加完整的API,因为它只是一个联系页面,我不需要访问他们的时间线,或者知道他们的用户ID等.

我在手机上使用的Tweetbot APP和处理程序工作正常(见下文)并打开我的个人资料页面,但我似乎无法获得默认的Facebook或Twitter应用程序的工作,应用程序启动但没有到我的相应个人资料页面(我显然遗漏了测试代码,但这些是调用应用程序的行)....

//Twitter
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"twitter://twitter.com/MyTwitterID"]];

//Tweetbot - WORKS!
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tweetbot:///user_profile/MyTwitterID"]];

//Fall Back to Safari - WORKS!
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.twitter.com/MyTwitterID"]];

//Facebook 
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"fb://profile/MyFbID"]];
Run Code Online (Sandbox Code Playgroud)

现在我在这里得到了相当多的信息,但我无法让它与Tweetbot和Safari分开.我猜测URL部分格式错误,但我无法找到解释它应该如何的地方.Google搜索会显示包含twitter和facebook标签的页面,但没有有用的信息,而且Twitter API文档对于我想要执行的简单实现来说过于详细.任何人都可以帮助我使用正确的URL格式吗?


[编辑]花了我一个多小时,但这里至少是Twitter的..

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"twitter://user?screen_name=MyTwitterID"]];
Run Code Online (Sandbox Code Playgroud)

还在Facebook上工作!! 尽管我在这里偶然发现了这个问题,但我不能肯定答案

当我将Facebook一个工作时,我会在这里发布我的代码所有的位,以防它帮助其他人!

等离子体


编辑2:好的,这里是我的代码(我删除了我的网站URL以及我的Facebook ID,但你会得到这个想法......它会弹出一个带有联系我们选项的UI操作表.希望它的用途是其他人.

#pragma mark - Contact Us Methods
- (IBAction)openContact {   

    UIActionSheet *popupContact = [[UIActionSheet alloc] initWithTitle:@"Contact Us" delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:nil otherButtonTitles:@"Twitter", @"Facebook", @"Email", @"Visit our website", nil];

    popupContact.actionSheetStyle = UIActionSheetStyleDefault;

    [popupContact showInView:self.parentViewController.tabBarController.view];

} …
Run Code Online (Sandbox Code Playgroud)

twitter facebook objective-c openurl ios

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

带有NavigationBar的TabBarController上的彩色状态栏无效

我在这里阅读了很多帖子,并尝试了大多数提到的选项,但没有人为我解决问题.我有一个基于标签栏控制器的应用程序.每个选项卡都是一个UIViewController,顶部有一个导航栏.

将此代码添加到AppDelegate为我提供了带有白色文本的橙色导航栏,但是带有黑色文本的白色状态栏.

[[UINavigationBar appearance] setBarTintColor:[UIColor orangeColor]];
[[UINavigationBar appearance] setTintColor:[UIColor whiteColor]];
[[UINavigationBar appearance] setTitleTextAttributes:@{NSForegroundColorAttributeName : [UIColor whiteColor]}];
Run Code Online (Sandbox Code Playgroud)

阅读各种页面上的答案建议将以下内容添加到View控制器:

- (UIStatusBarStyle)preferredStatusBarStyle
{
    return UIStatusBarStyleLightContent;
}
Run Code Online (Sandbox Code Playgroud)

然后在View Did Load中调用它:

[self setNeedsStatusBarAppearanceUpdate];
Run Code Online (Sandbox Code Playgroud)

这让我得到一个带有白色文本的白色状态栏,我现在如何让状态栏变为橙色以匹配我的导航栏?

对于使用导航控制器的人来说,这里提到的解决方案/sf/answers/1365960011/不起作用,我想这是因为我的主控制器是一个标签栏控制器.

有没有人遇到过这个?提前感谢您提出的任何建议/建议.如果需要,我可以提供一个示例应用程序,但可能很快使用Tab Bar模板构建一个,添加导航栏然后粘贴我的代码示例.

等离子体

objective-c statusbar ios

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

是否可以自定义CNContactPickerViewController?

我正在打开一个CNContactPickerViewController以便在应用程序中使用,但我想改变它呈现的方式以满足我的应用程序需求,最好不要自己动手并做很多重新发明的轮子.这是我使用Objective-C打开它的方式....

self.contactPicker = [[CNContactPickerViewController alloc] init];
self.contactPicker.delegate = self;

//Only enable contacts to be selected that have atleast one email address
NSArray *propertyKeys = @[CNContactGivenNameKey, CNContactFamilyNameKey, CNContactEmailAddressesKey];
NSPredicate *enablePredicate = [NSPredicate predicateWithFormat:@"emailAddresses.@count != 0"];

self.contactPicker.displayedPropertyKeys = propertyKeys;
self.contactPicker.predicateForEnablingContact = enablePredicate;

[self presentViewController:self.contactPicker animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)

当它打开时,它目前看起来像这样:

在定制之前

但是,由于SDK中存在错误,因此无法从搜索结果中进行选择,因此无法在此类视图中搜索人员.我要为此提交一个错误,但在同一时间我首先要隐藏搜索栏.我发现了一些关于删除SearchBar的旧问题,但它们与ABPeoplePickerNavigationController有关,与CNContacts无关.我也不想使用群组,如果我可以删除该按钮并将取消按钮移到左侧那将是很棒的,并且会使我的应用程序中的选择界面看起来更清晰.这就是我希望它看起来的样子:

定制后

任何人都可以告诉我这是否可能并且可能指出我正确的方向?我有委托方法在选择后接收contacts数组,我的问题是它在应用程序中的样子.

提前致谢!

等离子体

xcode objective-c uiviewcontroller uiview-hierarchy

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

不使用 openURL:url 打开 Mobile Safari

我想打开 Mobile Safari 应用程序“无需”更改其当前显示的页面。

我可以使用 .. 轻松切换到 Safari

NSString *ourPath = @"http://www.google.co.uk";
NSURL *ourURL = [NSURL URLWithString:ourPath];
if ([ourApplication canOpenURL:ourURL]) {
    [ourApplication openURL:ourURL];
}
Run Code Online (Sandbox Code Playgroud)

但我想要做的只是切换到 safari,而不是离开它当前所在的页面。就像我使用任务切换器切换时一样,它只是弹出 Safari 并将其留在原来的页面上。

我试过给它发送一个 @"http:" 的 url,但这不起作用,它将页面更改为 "http:localhost/"

有没有办法只打开它?

等离子体

xcode objective-c ios

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

Groovy 使用 GPath Slurper 获取 XML 属性的值

需要解析包含标头上下文中的属性的 XML 文档。

<?xml version="1.0" encoding="UTF-8"?>
<S38:manageRequest xmlns:S38="http://ns.com/S38" xmlns:header="http://ns.com/header/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://ns.com/xsd/ManageItem XSD\ManageItem.xsd">
    <header:standardHeader>
        <header:serviceAddressing>
            <header:to>
                <header:address>http://ns.com/BLAHBLAH</header:address>
                <header:contextItemList>
                    <header:contextItem contextName="Channel" contextId="http://ns.com/contextItem">I Need This</header:contextItem>
                    <header:contextItem contextName="Box" contextId="http://ns.com/contextItem">Blue</header:contextItem>
                </header:contextItemList>
            </header:to>
        </header:serviceAddressing>
    </header:standardHeader>
</S38:manageRequest>
Run Code Online (Sandbox Code Playgroud)

我想使用 获取“我需要这个”的属性“频道”值groovy.util.slurpersupport.GPathResult

我找到了一种可行的方法,但我不相信它是正确的,因为我正在选择contextItem,幸运的是第一个是我感兴趣的:

private Map parseServiceAddressing(GPathResult message,Map values){ 
def serviceAddressingList=message."standardHeader"."serviceAddressing"."to"."contextItemList";
    if(serviceAddressingList.isEmpty()){ 
    throw new sourceException("serviceAddressing list is missing",values);
}

def contextItem=serviceAddressingList.'*'.find{
    it.name()=='contextItem'
    };

values.put(tag.CHANNEL, contextItem);

return values;
Run Code Online (Sandbox Code Playgroud)

所有用作Channel位置文本的尝试都无法检索到值。不幸的是,我必须使用 GPath,因为它是一个非常大的 Groovy 脚本的一部分,我被要求修改它,它可以做很多其他的事情。

有人可以告诉我实现这一目标的正确方法是什么吗?

xml groovy xmlslurper gpath

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