小编Ant*_*ony的帖子

GitHub项目的官方形象主持人?

每当我需要在GitHub项目的README文件中包含图片时,我通常只是将它粘贴在一个Screenshots文件夹中并相对链接到它.但是,这会不必要地增加项目的文件大小,特别是如果我在项目中包含动画的.gif动画.

我注意到在一些流行的Github iOS项目(如MMDrawerControllerJASidePanels)中,图像没有相对链接,而是存在于我从未见过的域中 - " https://github-camo.global.ssl .fastly.net ".直接导航到此站点不起作用,谷歌搜索没有任何结果.所以对于我的问题:这个网站是否隶属于GitHub,以及如何将他/她的图像上传到这里?当然,我总是可以使用通用图像托管服务,但我更喜欢使用与GitHub有官方联系的服务(如果这样的网站存在).

https://github-camo.global.ssl.fastly.net

这是哪里?

image github

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

NSDate:获取与设备时钟无关的精确时间?

可能重复:
如何在应用程序运行之间本地检测用户的iPhone时钟进度?
有没有办法确定iOS中的实际时间和日期(不是设备的时间)
iOS中是否有可以使用的时钟,用户无法更改

简要

我正在使用基于订阅的自动续订应用程序.当应用程序收到Apple的最新收据时,它会将expires_date_ms密钥存储在NSUserDefaults.该日期过后30天,该应用程序会检查Apple以查看订阅是否仍处于活动状态.该应用可被视为离线应用,但必须每30天连接一次互联网才能检查订阅状态.此时间比较将用于告诉用户他/她必须连接.

问题

我使用下面的代码比较当前时间expires_date_ms:

NSTimeInterval expDateMS = [[productInfo objectForKey:@"expires_date_ms"] doubleValue];
NSTimeInterval currentDateMS = ([[NSDate date] timeIntervalSince1970] * 1000);

if (currentDateMS > expDateMS)
    subExpired = YES;
Run Code Online (Sandbox Code Playgroud)

这很好并且运行良好,但据我所知,有一个漏洞可以被利用 - 如果用户将设备的时钟设置为一个小时/月/十年,时间比较将变得不可靠,因为[NSDate date]使用设备的当前时间(请如我错了请纠正我).

有没有办法检索与设备无关的时间(以毫秒为单位)?可以准确可靠地测量而无需关注器件时钟的器件?

objective-c nsdate ios

8
推荐指数
2
解决办法
6245
查看次数

iOS - 如何使用无序的CGPoints绘制特定的CGPath

考虑这个ASCII绘图:

A _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ D
 |                               |
 |                               |
 |                               |
 |                               |
 |                               |
 |                               |
 |                               |
 |                               |
 |                               |
 |                               |
 |                               |
 |                               |
 |_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|
B                                 C
Run Code Online (Sandbox Code Playgroud)

点A,B,C和D CGPoints在a中是已知的NSMutableArray并且已经用于创建填充CGPath.现在考虑这个图:

A _ _ _ _ _ _ _ _ _ _ _ …
Run Code Online (Sandbox Code Playgroud)

algorithm objective-c quartz-2d ios

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

iOS - 在一台设备上支持多个用户帐户的应用中的可续订应用内购买

背景

我的iOS应用程序支持多个用户帐户,但用户一次只能登录一个帐户.该应用程序还提供订阅服务("可更新的应用程序内购买"形式的"信用").

我无法将应用内订阅与购买它们的特定用户帐户分开.如果用户在账户1上购买信用点然后注销,而另一个用户登录到账户二(在同一设备上),则SKPaymentQueue仍然继续进行从账户1购买的更新过程(并因此触发解锁的逻辑)那些学分).

对于支持多个帐户的应用,处理可再生应用内购买的正确方法是什么?有没有办法让购买"溢出"到同一设备上的其他帐户?还应该记住什么?

objective-c in-app-purchase ios

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

在 NSScrollView 中禁用 WKWebView 的滚动

我想在 Swift 中禁用 macOS 上 NSScrollView 内的 WKWebView 滚动。

我找到了一种使用 css 在 WKWebView 中禁用滚动的方法,虽然 WKWebView 仍然阻止 NSScrollView 滚动。

有谁知道如何做到这一点?

macos scroll objective-c nsscrollview wkwebview

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

UINavigationController popViewControllerAnimated:在iOS 6中崩溃

下面的代码在iOS 4和5中运行良好,但在iOS 6中崩溃EXC_BAD_ACCESS.我很感激您在排除故障时提供帮助.在UITableViewController处理我的应用程序的搜索逻辑的过程中调用此代码:

CATransition *transition = [CATransition animation];
transition.duration = 0.3f;
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear];
transition.type = kCATransitionFade;

[self.navigationController.view.layer addAnimation:transition forKey:nil];
[self.navigationController popViewControllerAnimated:NO];
Run Code Online (Sandbox Code Playgroud)

我添加的tableView方式类似,并且在调用时不会崩溃:

SearchTVC *searchTable = [[SearchTVC alloc] init];
searchTable.detailViewController = self.detailViewController;

CATransition *transition = [CATransition animation];
transition.duration = 0.3f;
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear];
transition.type = kCATransitionFade;

[self.navigationController.view.layer addAnimation:transition forKey:nil];
[self.navigationController pushViewController:searchTable animated:NO];
Run Code Online (Sandbox Code Playgroud)

可能是什么问题呢?

*编辑

有趣的是,如果我使用[self.navigationController popViewControllerAnimated:YES];(YES而不是NO),则不会发生崩溃.但当然这会破坏使用自定义流行动画的目的.

iphone xcode objective-c uitableview ios6

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

如何使用AFNetworking立即强制取消NSOperation?

我在我的应用程序中使用AFNetworking,我正在尝试在我的进度HUD中实现"点按取消"功能.我有一个管理所有HTTP请求的单例类.如果点击进度HUD,我打电话:

[[[HTTPRequestSingleton sharedClient] operationQueue] cancelAllOperations];
Run Code Online (Sandbox Code Playgroud)

但这并不像我需要的那样"取消"操作.我阅读了NSOperationQueue文档并发现了这个:

取消操作对象会将对象留在队列中,但会通知对象它应该尽快中止其任务.对于当前正在执行的操作,这意味着操作对象的工作代码必须检查取消状态,停止它正在执行的操作,并将自己标记为已完成.对于排队但尚未执行的操作,队列仍必须调用操作对象的start方法,以便它可以处理取消事件并将自身标记为已完成.

关于cancelAllOperations方法:

此方法向队列中当前的所有操作发送取消消息.排队操作在开始执行之前被取消.如果操作已在执行,则由该操作识别取消并停止其正在执行的操作.

我的问题似乎特别涉及一个已经执行的操作,我想立即取消.使用AFNetworking,如何提醒应该取消的操作并丢弃有关请求的所有信息?

用于操作的代码

AFJSONRequestOperation *loginOperation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {

    //operation was successful

    if (loginOperation.isCancelled)
    {
        //can't do this. variable 'loginOperation' is uninitialized when captured by block      
    }

} failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON) {

    //operation failed

}];
Run Code Online (Sandbox Code Playgroud)

cocoa-touch objective-c nsoperation afnetworking

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

快速搜索NSArray中对象属性的方法

我有一个NSArray自定义对象都有@property name类型NSString.如何快速枚举数组并创建一个只包含name属性中具有特定单词的对象的新数组?

例如:

CustomObject *firstObject = [[CustomObject alloc] init];
firstObject.name = @"dog";

CustomObject *secondObject = [[CustomObject alloc] init];
secondObject.name = @"cat";

CustomObject *thirdObject = [[CustomObject alloc] init];
thirdObject.name = @"dogs are fun";

NSMutableArray *testArray = [NSMutableArray arrayWithObjects:firstObject,
                                                             secondObject,
                                                             thirdObject, 
                                                             nil];

// I want to create a new array that contains all objects that have the word 
// "dog" in their name property. 
Run Code Online (Sandbox Code Playgroud)

我知道我可以像这样使用for循环:

NSMutableArray *newArray = [NSMutableArray array];
for (CustomObject *obj in testArray) …
Run Code Online (Sandbox Code Playgroud)

algorithm objective-c

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

动态heightForRowAtIndexPath:包含许多(数千个)单元格

在使用动态值时我遇到了一些性能问题heightForRowAtIndexPath: (我知道这是这种方法,因为如果我设置静态值,响应性会大大增加).我的桌子包含大约3000个细胞.

我明白为什么性能使用动态值(主要是因为该方法的计算必须为表中的每个单元可显示的数据之前进行一次)的时候受苦,但我无法弄清楚如何使它更有效.

在许多的我已经遇到了类似的问题,所提出的解决方案是使用NSStringsizeWithFont方法heightForRowAtIndexPath:,以加快速度.我目前这样做,但表仍然需要约1.5秒加载(并重新加载,这是经常做的).这太长了,我需要优化它.

我正在使用的代码(至少它的本质)如下:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell;
    UILabel *label = nil;

    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];

        label = [[UILabel alloc] initWithFrame:CGRectZero];
        // set up label..
        [[cell contentView] addSubview:label];

    }

    NSDictionary *dict = alphabetDict; //dictionary of alphabet letters (A-Z). each key contains an NSArray as its object
    CGFloat rightMargin = 50.f; //padding for the tableview's index …
Run Code Online (Sandbox Code Playgroud)

objective-c uitableview

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