小编gui*_*vho的帖子

将ObjectiveC类绑定到C#问题

将ObjectiveC类绑定到C#问题

monotouch项目描述了如何绑定Objective-C类型以与MonoTouch一起使用.我们没有为AdMob库执行此操作(另请参阅sabonrai dot wordpress dot com上的monotouch-binding-for-admob博客.

所以我们决定创建尽可能小的测试项目.我们用两个简单的方法编写了一个简单的objc类,一个返回一个字符串,另一个返回一个整数.

这是TstLib.h:

#import <Cocoa/Cocoa.h>
@interface TstCls : NSObject {
}
- (NSString *) Version;
- (int) GimmeAnInt;
@end
Run Code Online (Sandbox Code Playgroud)

和TstLib.m文件:

#import "TstCls.h"
@implementation TstCls
- (NSString *) Version {
    return @"I ain't got a version, I'm a poor lonesome cowboy...";
}
- (int) GimmeAnInt {
    return 110646;
}
@end
Run Code Online (Sandbox Code Playgroud)

我们有一个小的objc控制台项目来验证这个库.这是代码:

#import <Cocoa/Cocoa.h>
#import "../TstLib/TstCls.h"
int main(int argc, char *argv[])
{
    TstCls* tstCls = [[TstCls alloc] init];
    NSLog(@"version = %@", [tstCls Version]); …
Run Code Online (Sandbox Code Playgroud)

c# iphone objective-c xamarin.ios admob

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

在iOS SDK 4.2的MonoTouch项目中使用AdMob

在iOS SDK 4.2的MonoTouch项目中使用AdMob

我们有一个测试项目尝试将AdMob与MonoTouch一起使用.设置如下:

我们创建了一个(胖)TouchJSON库,如TouchJSON的Monotouch绑定中所述?

我们有一个Libs库,其中包含此libTouchJSON.a和AdMob提供的libAdMobNoThumb.a库.在那里,我还有一个来自AdMob.cs文件的btouch的AdMob.dll,它定义了我们想要使用的(有限的一组)Admob方法.此dll将添加到项目的引用中

我们提供以下额外标志:

-v -v -v -gcc_flags "-L${ProjectDir}/../Libs -lAdMobNoThumb -lTouchJSON -force_load ${ProjectDir}/../Libs/libAdMobNoThumb.a -force_load ${ProjectDir}/../Libs/libTouchJSON.a"
Run Code Online (Sandbox Code Playgroud)

我们选择"不链接"作为链接器行为.

这曾经使用了admob库的SDK 4.2之前的版本.但现在有了4.2版本,我们得到了

ld: framework not found AudioUnit 
Run Code Online (Sandbox Code Playgroud)

错误.我们已经读过,解决方案是"重新启动链接器".但是如果我们进行链接(如上所述保留其余的设置),我们会从admob库中获得许多未知符号:

Error 1: mtouch failed with the following message:
/var/folders/hF/hF42FIdhEUmY1y-pGRsu1k+++TI/-Tmp-/tmp2685841f.tmp/main.m: In function 'monotouch_debug_connect':
/var/folders/hF/hF42FIdhEUmY1y-pGRsu1k+++TI/-Tmp-/tmp2685841f.tmp/main.m:1779: warning: implicit declaration of function 'select'
/var/folders/hF/hF42FIdhEUmY1y-pGRsu1k+++TI/-Tmp-/tmp2685841f.tmp/main.m: In function 'main':
/var/folders/hF/hF42FIdhEUmY1y-pGRsu1k+++TI/-Tmp-/tmp2685841f.tmp/main.m:1821: warning: implicit declaration of function 'chdir'
/var/folders/hF/hF42FIdhEUmY1y-pGRsu1k+++TI/-Tmp-/tmp2685841f.tmp/main.m:1838: warning: implicit declaration of function 'monotouch_enable_debug_tracking'
/var/folders/hF/hF42FIdhEUmY1y-pGRsu1k+++TI/-Tmp-/tmp2685841f.tmp/main.m:1914: warning: implicit declaration of function 'dup2'
/var/folders/hF/hF42FIdhEUmY1y-pGRsu1k+++TI/-Tmp-/tmp2685841f.tmp/main.m:1921: warning: implicit declaration of function 'mini_get_debug_options'
/var/folders/hF/hF42FIdhEUmY1y-pGRsu1k+++TI/-Tmp-/tmp2685841f.tmp/main.m:1925: …
Run Code Online (Sandbox Code Playgroud)

iphone touchjson monodevelop xamarin.ios admob

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

javascript document.body undefined 如果前面没有 document.write

使用这个最小的网页:

<html>
<head>
    <title>test</title>
    <script type='text/javascript' src='test.js'></script>
</head>
<body>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

这个最小的“test.js”脚本失败了:

document.body.innerText = 'testje';
Run Code Online (Sandbox Code Playgroud)

document.body 似乎未定义:

0x800a138f - JavaScript runtime error: Unable to set property 'innerText' 
of undefined or null reference
Run Code Online (Sandbox Code Playgroud)

如果在代码行之前添加 document.write('blabla') ,它会起作用:

document.write('blabla');
document.body.innerText = 'testje';
Run Code Online (Sandbox Code Playgroud)

这让我感到困惑,尽管它看起来很基本。

我是一个 Javascript 新手,所以一些解释将是最受欢迎的。

javascript

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