我正在使用TWTweetComposeViewController访问用户的Twitter帐户,他/她已在设置 - > Twitter中添加了该帐户.当应用程序尝试访问Twitter帐户时,它应该使用类似于此的消息来提示警报:
"[AppName] Would Like Access to Twitter Accounts"
Run Code Online (Sandbox Code Playgroud)
您可以点击"不允许"或"确定".我想这是操作系统本身显示的警报,因为点击"确定"实际上可以访问推特.
当我在iOS 5.x设备上测试时会显示上述警报,但在iOS 6设备上测试时则不是这种情况.我希望在发送以下消息时显示警报,并且我还没有在设置中获得我对Twitter的应用访问权限:
[TWTweetComposeViewController canSendTweet]
Run Code Online (Sandbox Code Playgroud)
如上所述,它不会发生.有谁知道这是iOS 6中的已知错误吗?我一直无法在SO上找到任何帖子,因为我找不到其他不同行为的理由我认为这是一个错误.
仅供参考,我在以下两个设备上测试:
更新
我使用DETweetComposeViewController,它以下列方式检查iOS 5:
+ (BOOL)de_isIOS5
{
return (NSClassFromString(@"NSJSONSerialization") != nil);
}
Run Code Online (Sandbox Code Playgroud)
但由于NSJSONSerialization类也在iOS 6中表示,因此不应该这样.
想象一下作者和书之间的以下关系:
[Author] -- has many --> [Book]
Run Code Online (Sandbox Code Playgroud)
使用restkit,我有一个Author模型和Book模型,我创建了Author和Book之间的关系,如下所示:
[authorMapping hasMany:@"books" withMapping:booksMapping];
Run Code Online (Sandbox Code Playgroud)
我现在可以通过作者的财产访问作者的书籍:
@property (strong, nonatomic) NSSet *books;
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好.同样,我想通过它的属性访问一本书的作者:
@property (weak, nonatomic) Author *author;
Run Code Online (Sandbox Code Playgroud)
这就是问题的起点.为了实现这种反向关系,我添加了以下内容:
[booksMapping hasOne:@"author" withMapping:authorMapping];
Run Code Online (Sandbox Code Playgroud)
这导致每个映射递归地相互调用,直到程序死亡.一点都不好.检查文档我发现hasOne/Many:withMapping:方法只是调用mapKeyPath:toRelationShip:withMapping:所以那里没有真正的替代品.此外,添加映射如下:
[bookMapping mapKeyPath:@"author" toAttribute:@"author"];
Run Code Online (Sandbox Code Playgroud)
很明显,只是创建映射但实际上并没有将Author对象映射到Book的author属性.
如何使用RestKit在两个或多个模型之间创建反向一对多关系,而不是CoreData?
我正在寻找一种开发iOS的方法,我可以在其中访问所有网络流量(我的意思是系统范围)并通过我的应用程序进行路由.像代理服务器之类的东西,但请注意我想强制路由并访问所有流量,而不仅仅是Web请求(类似VPN连接所做的事情).
我认为这可能会超出Apple的限制App Store Guidelines.任何VPN API都可以访问吗?关于无证件和私有API的任何实际建议或描述都非常感谢.
PS:这篇文章可能有助于理解我在寻找什么;
根据Apple.com上的APNS参考,iOS设备在离线/未连接到3G或WiFi或类似设备时无法接收通知.昨天我发现了一个应用程序(Pillboxie)声称即使他们处于脱机状态也可以通知用户.我引用:
"为了使用不需要网络连接的提醒技术,Pillboxie只能在运行iOS 4.0或更高版本的设备上运行."
和
"不需要网络连接!"
这两个引号都是从App Store中的App Description复制的.
我没有成功地找出它是如何工作的,以及它是否像APNS一样可靠.有没有人知道上面引用中提到的离线noficiation服务?
我花了相当长的一段时间,试图找出如何class_respondsToSelector以及respondsToSelector会产生不同的结果.考虑以下课程:
@interface Dummy : NSObject
- (void)test;
@end
@implementation Dummy
- (void)test {}
@end
Run Code Online (Sandbox Code Playgroud)
我的情况是我尝试确定一个类是否响应某个类方法.这件作品再现了这个问题:
Class class = [Dummy class];
if (class_respondsToSelector(class, @selector(test)))
NSLog(@"class_respondsToSelector: YES");
else
NSLog(@"class_respondsToSelector: NO");
if ([class respondsToSelector:@selector(test)])
NSLog(@"respondsToSelector: YES");
else
NSLog(@"respondsToSelector: NO");
Run Code Online (Sandbox Code Playgroud)
如果我删除声明和实现-test,上面的输出是NO和NO按预期.但是,在读取上面(包括-test)时运行它,产生的输出如下:
class_respondsToSelector:是的
respondsToSelector:没有
文档没有说明是否respondsToSelector仅适用于实例,只是它指示接收器是否实现...,因此我无法确定这是否是正确的行为.我错过了什么吗?
更新
我有一个数据数组,我想从中提取包含数字和数字的行.行的示例:
15,+ 2,'',7,9,+ 21
(''代表一个或多个空格).
在这种情况下,我想只提取15,7和9.我使用谓词通过以下方式:
NSString *pattern = @"[^0-9]";
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", pattern];
if (![predicate evaluateWithObject:myStringToMatch])
// Extract ...
Run Code Online (Sandbox Code Playgroud)
我使用在线正则表达式测试器测试了我的模式,发现[^ 0-9]确实与数字0-9匹配.但是,当我运行上面的代码时,它只匹配空格而不是例如+2,我很确定它应该这样做.为了澄清,myStringToMatch是一个NSString对象.
我不知道为什么它与我的模式不符.谁能给我一个暗示我做错了什么?
谢谢.
ios ×4
iphone ×3
ios6 ×1
networking ×1
nspredicate ×1
objective-c ×1
one-to-many ×1
proxy ×1
regex ×1
restkit ×1
selector ×1
twitter ×1
vpn ×1