小编Jer*_*hao的帖子

适用于iOS的Google Maps API API密钥的例外情况

我正在使用适用于IOS的Google Maps API开发iOS应用.我为我的项目安装了CocoaPod,并根据Google Developer上的教程配置它们.但是,当我运行我的项目时,它说

***由于未捕获的异常'GMSServicesException'而终止应用程序,原因是:'Google Maps SDK for iOS必须>在使用之前通过[GMSServices provideAPIKey:...]进行初始化

但我已经在AppDelegate.swift上调用了"GMSServices.provideAPIKey.以下是代码:

....
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    GMSServices.provideAPIKey("***********************")
    return true
}
....
Run Code Online (Sandbox Code Playgroud)

(**************)是我的API密钥.

由于Google Maps API使用Objective C,因此我创建了一个桥接头来导入库.

我试图在[application:didFinishLaunchingWithOption]上设置断点.但它会在运行该函数之前引发异常,我认为这很奇怪.

对此感到困惑.提前致谢.

google-maps api-key ios swift

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

Racket Lisp:new-if和if之间的比较

(define (sqrt-iter guess x)
    (if (good-enough? guess x)
        guess
        (sqrt-iter(improve guess x)
                  x)))

(define (improve guess x)
  (average guess(/ x guess)))

(define (average x y)
  (/ (+ x y) 2))

(define (good-enough? guess x)
  (< (abs (- (square guess) x)) 0.0001))

(define (square x)
  (* x x))

(define (sqrt-g x)
  (sqrt-iter 1.0 x))
Run Code Online (Sandbox Code Playgroud)

这是sqrt的一个程序.问题是当你尝试使用new-if替换if-if时会发生什么.

(define (sqrt-iter guess x)
    (if (good-enough? guess x)
        guess
        (sqrt-iter(improve guess x)
                  x)))
Run Code Online (Sandbox Code Playgroud)

这是新的,如果

 (define (new-if predicate then-clause else-clause)
      (cond (predicate then-clause)
            (else else-clause)))
Run Code Online (Sandbox Code Playgroud)

我的观点是两个程序的结果是一样的.因为new-if和if可以产生相同的结果.

然而,新的 …

lisp scheme sicp racket

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

SICP中的一个例子

这是SICP中的一个示例,我输入它但是有错误.

(define (sum term a next b)
  (if (> a b)
      0
      (+ (term a)
         (sum term (next a) next b))))
Run Code Online (Sandbox Code Playgroud)

这是错误:

函数调用:期望一个函数在打开括号后,但找到一个变量

lisp scheme sicp racket

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

C中带有花括号的#define

我在C中找到了一种新形式的"#define",但我不明白这意味着什么.这是源代码:

#define OPT_SET_INT(s, l, v, h, i)  { OPTION_SET_INT, (s), (l), (v), NULL, \
           (h), PARSE_OPT_NOARG, NULL, (i) }
Run Code Online (Sandbox Code Playgroud)

这是OPTION_SET_INT的定义:

enum parse_opt_type {
    /* special types */
    OPTION_END,
    OPTION_ARGUMENT,
    OPTION_GROUP,
    OPTION_NUMBER,
    /* options with no arguments */
    OPTION_BIT,
    OPTION_NEGBIT,
    OPTION_COUNTUP,
    OPTION_SET_INT,
    OPTION_SET_PTR,
    OPTION_CMDMODE,
    /* options with arguments (usually) */
    OPTION_STRING,
    OPTION_INTEGER,
    OPTION_CALLBACK,
    OPTION_LOWLEVEL_CALLBACK,
    OPTION_FILENAME
};
Run Code Online (Sandbox Code Playgroud)

它位于此存储库中的parse-option.h中:https: //github.com/git/git

谢谢.

c c-preprocessor

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

标签 统计

lisp ×2

racket ×2

scheme ×2

sicp ×2

api-key ×1

c ×1

c-preprocessor ×1

google-maps ×1

ios ×1

swift ×1