我希望现在苹果公司能够接受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) 我有一个应用程序一直与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)
我已经尝试了各种调整,但是根本无法使用。我也找不到任何文档说明此行为已更改。
是否有其他人也尝试过此方法或找到了解决方法?
我很确定在发布这个帖子后一小时我可能会找到答案,但我已经找了一个多小时了,似乎无法解决这个问题.所以这里..
我想在我的应用程序中添加一些简单的"联系我们"链接,如果可用的话,可以在其中一个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) 我在这里阅读了很多帖子,并尝试了大多数提到的选项,但没有人为我解决问题.我有一个基于标签栏控制器的应用程序.每个选项卡都是一个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模板构建一个,添加导航栏然后粘贴我的代码示例.
等离子体
我正在打开一个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数组,我的问题是它在应用程序中的样子.
提前致谢!
等离子体
我想打开 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/"
有没有办法只打开它?
等离子体
需要解析包含标头上下文中的属性的 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 脚本的一部分,我被要求修改它,它可以做很多其他的事情。
有人可以告诉我实现这一目标的正确方法是什么吗?
objective-c ×5
ios ×4
xcode ×3
cncontact ×1
facebook ×1
gpath ×1
groovy ×1
ios6 ×1
ios7 ×1
openurl ×1
statusbar ×1
twitter ×1
uitableview ×1
xml ×1
xmlslurper ×1