小编Kli*_*akM的帖子

无限滚动UIPageViewController

我正在尝试设置一个UIPageViewController可以通过NSUrlConnection数据拉动动态加载页面视图无限滚动.我从3个观点开始:prev,curr,next; 并在到达pageData阵列中的第一个或最后一个视图时加载其他视图.

麻烦的是我在viewControllerBeforeViewController或中加载了其他视图viewControllerAfterViewController.在页面之间进行单次滑动时,似乎可以调用这些方法2-3次.它们也可以在从不完成页面转换的半滑动期间调用.这可能意味着多个预加载开始过早完成.然后不知何故pageViewController忘记了当前的位置.

[self.pageViewController setViewControllers:@[[self.pageData objectAtIndex:gotoIdx]] direction:direction animated:NO completion:nil];
Run Code Online (Sandbox Code Playgroud)

下面使用此行来表示添加数据pageViewController,并转到适当的视图.当我开始使用它时,它不是通过滑动进入上一个/下一个视图,而是开始跳转到看似随机的视图.一旦我开始前进向后滑动......

是否有更合适的地方进行预加载,仅在页面转换完成后调用一次?并且,是否必须调用上面的行,或者是否有更可靠的方法来确保它进入正确的页面?感到很沮丧试图在这里连线.

 // the init line, somewhere early on.  uses Scoll style
 self.pageViewController = [[UIPageViewController alloc] initWithTransitionStyle:UIPageViewControllerTransitionStyleScroll navigationOrientation:UIPageViewControllerNavigationOrientationVertical options:nil];

- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController {
    NSUInteger index = [self.pageData indexOfObject:viewController];
    if(index == 1){
        // if loading last one on start, preload one more in advance
        [self loadSecondaryCalData:-1 endView:[[self viewControllerAtIndex:index-1] retain]];  
    } else if ((index == 0) …
Run Code Online (Sandbox Code Playgroud)

objective-c ios uipageviewcontroller

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

如何在swift中进行多重继承?

我需要实现一个派生的类(为了便利名称A)UITableViewController和另一个派生的(B)UICollectionViewController.并且有很多常见的东西,所以我想把它们放在类(C)中让A和B继承C.现在A和B都有两个继承类,但是swift中不允许多重继承,所以如何实现这个?我知道swift中不允许多重继承,但我仍然想知道如何做我上面描述的事情.

ios swift

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

@throw NSException vs NSException raise

@throw NSException和之间有什么区别NSException raise?我想知道我应该使用哪一个(有一个正确的用例来使用)以及为什么?

exception objective-c raise throw ios

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

NSAssert与NSCAssert

NSAssert和之间有什么区别NSCAssert?当我探索他们的实现时,他们看起来非常相似,我找不到我的问题的答案.

我猜想,这也解释之间的差异NSParameterAssertNSCParameterAssert.

assert objective-c ios nsassert

7
推荐指数
2
解决办法
3451
查看次数

如何在mac上设置团队城市代理?

我不知道在mac上设置TeamCity代理的步骤,所以如果有人这样做的话.请分享您的经验.

macos teamcity build-agent

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

NSUserDefaults没有保存

我的精灵工具包应用程序中有一个问题,我的NSUserDefaults变量不起作用.在createSceneContents(我知道被称为)

if (![defaults objectForKey:@"obj"]) {
    difficultyLabel.text = @"Difficulty: Easy";
    [defaults setObject:@"Easy" forKey:@"obj"];
} else {
    difficultyLabel.text = [NSString stringWithFormat:@"Difficulty: %@", [defaults objectForKey:@"diff"]];
}
Run Code Online (Sandbox Code Playgroud)

然后当你点击SKLabelNode改变难度时,这个代码就被调用了

if ([label.text isEqualToString:@"Difficulty: Easy"]) {
            label.text = @"Difficulty: Hard";
            [defaults setObject:@"Hard" forKey:@"obj"];
            NSLog(@"%@",[defaults objectForKey:@"obj"]);

        } else {
            label.text = @"Difficulty: Easy";
            [defaults setObject:@"Easy" forKey:@"obj"];
            NSLog(@"%@",[defaults objectForKey:@"obj"]);
Run Code Online (Sandbox Code Playgroud)

但是当我停止程序并再次运行时,它总是说难度:容易.有什么建议?

nsuserdefaults ios sprite-kit

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

NSDateComponents周在iOS8上的工作方式不同

NSDateComponents week从iOS8开始不推荐使用.Apple建议使用weekOfMonthweekOfYear取而代之,取决于上下文,但它们以不同的方式工作.例如:

components1 = [calendar components:NSMonthCalendarUnit | NSWeekCalendarUnit | NSDayCalendarUnit
                          fromDate:[self date7DaysAgo]
                            toDate:[NSDate date]
                           options:0];
Run Code Online (Sandbox Code Playgroud)

components1返回month = 0,week = 1,day = 0,weekOfMonth并且weekOfYear都等于2147483647(整数最大值).

components2 = [calendar components:NSMonthCalendarUnit | NSWeekCalendarUnit | NSDayCalendarUnit
                          fromDate:[self date30DaysAgo]
                            toDate:[NSDate date]
                           options:0];
Run Code Online (Sandbox Code Playgroud)

components2返回month = 1(我知道它取决于,但它只是一个例子),week = 0,day = 0,weekOfMonth并且weekOfYear都等于2147483647(整数最大值).

Week返回某段时间内的周数(如果是一周或多数),它与月或一周中的周数完全不同.苹果为什么建议使用它呢?

iphone nsdatecomponents ios ios8

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

macos - CFStringGetLength EXC_BAD_ACCESS(SIGSEGV)崩溃

我有以下代码:

char *get_string_property_2(IOHIDDeviceRef device, CFStringRef prop)
{

    CFStringRef str = IOHIDDeviceGetProperty(device, prop);

    if(str)
    {
         CFIndex str_len = CFStringGetLength(str);
         ...

    }

    ...
}
Run Code Online (Sandbox Code Playgroud)

有时(并非总是)我CFStringGetLength使用以下日志崩溃:

Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x00007fff770083a8

Thread 8 Crashed:
0   libobjc.A.dylib                 0x00007fff88e22097 objc_msgSend + 23
1   libtobii_usb.dylib              0x00000001081c4f72 get_string_property_2 + 130 (macosx.c:99)
2   serviced                        0x00000001081a5fad device_removed_callback + 285 (daemond_mac.c:614)
3   libsystem_pthread.dylib         0x00007fff8ae35899 _pthread_body + 138
4   libsystem_pthread.dylib         0x00007fff8ae3572a _pthread_start + 137
5   libsystem_pthread.dylib         0x00007fff8ae39fc9 thread_start + 13
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题?在调用之前我正在检查str是否为NULL,CFStringGetLength显然它还不够.

编辑:

我仍然在这个崩溃,总是在同一个地方. …

macos core-foundation

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

IOS:如何向后和向前发送图像视图

在我的故事板中,我有一个视图,我有一个ImageView和一个Button.在ImageView目前覆盖我的按钮,我想提出的按钮在ImageView的.我找到了类似的主题,这些主题通过转到"编辑器" - >"排列" - >"发送到前面"来解决,但是这样做了,UIViews并且这个选项对于ImageView和被动Buttons.

那么如何将我发送ImageView到后台呢?最好的解决方案是为此添加一个额外的视图Button然后将它带到前面吗?

xcode objective-c ios

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

iOS关联域 - 子域似乎被忽略

我有两个构建配置:AppApp Stage.

每个配置都配置不同Associated Domains:app.mydomain.comapp-stage.mydomain.com.

当然,每个网站都公开了不同的apple-app-site-association文件:app.mydomain.com/apple-app-site-associationapp-stage.mydomain.com/apple-app-site-association(HTTP 200,没有.json扩展名等) .

问题是只有第一个注册域(不幸的是它的Stage)才能正常工作.当我安装了这两个应用时,每个深层链接(app.mydomain.com/homeapp-stage.mydomain.com/home)都会打开App Stage.当我只安装了App Sage时,两个链接都会打开它.当我只安装App时,没有链接正常工作.看起来子域名Associated Domains被忽略,只考虑mydomain.com.

我认为构建配置是正确定义的,因为我也区分了其他设置,如Facebook,Google和其他人.

你遇到过类似的问题吗?是否允许使用同一域的不同子域进行Associated Domains使用?

更新:

按照@ clayjones94说明,我检查了每个应用程序是否使用Charles Proxy下载了正确的JSON文件.我发现App Stage正在获取正确的文件,而App不会获取任何文件.

我还在Charles的app-stage.mydomain.com/apple-app-site-association HTTP请求中编辑了URL,以确保app.mydomain.com/apple-app-site-association返回正确的JSON.当我-stage从URL中删除并重复调用它已经获取了一个不同的JSON文件,因此我确认后端对两种配置都正常工作.

首先我认为我的构建配置不正确.所以我决定applinks:app.mydomain.com用Stage 替换App的相关域,applinks:app-stage.mydomain.com看看App配置是否能够获取App Stage文件.它工作正常,App下载了App Stage的JSON文件.同样,它看起来像子域名Associated Domains被忽略,只考虑第一个注册的子域名.

iphone deep-linking ios associated-domains

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