GVKun编程网logo

NSClassFromString()始终返回nil(cursor.fetchall返回类型)

2

在这里,我们将给大家分享关于NSClassFromString的知识,让您更了解始终返回nil的本质,同时也会涉及到如何更有效地AngularJS$cookies.get()始终返回未定义、c#–Mo

在这里,我们将给大家分享关于NSClassFromString的知识,让您更了解始终返回nil的本质,同时也会涉及到如何更有效地AngularJS $ cookies.get()始终返回未定义、c# – MonoTouch NSClassFromString、codeigniter db-> delete()始终返回true吗?、dateFromString对于某些值返回nil的内容。

本文目录一览:

NSClassFromString()始终返回nil(cursor.fetchall返回类型)

NSClassFromString()始终返回nil(cursor.fetchall返回类型)

nil尽管ListCell是有效的类,但以下代码会打印。

var lCellClass : AnyClass! = NSClassFromString("ListCell");println(lCellClass);

文档说方法返回

aClassName 命名的类对象,或者nil如果当前没有加载该名称的类。如果 aClassNamenil,则返回nil

我也试图获得NSClassFromString()当前的viewcontroller已加载但仍然得到nil

可能是什么问题?

更新: 即使尝试这样做,NSClassFromString("Array")我仍然可以nil

答案1

小编典典

NSClassFromString函数 确实 适用于(纯和Objective-C派生的)swift类,但是仅当您使用全限定名时才起作用。

例如,在一个模块中,该模块使用名为MyAppswift的纯swift类Person

let personClass: AnyClass? = NSClassFromString("MyApp.Person")

模块名称由“产品模块名称”(PRODUCT_MODULE_NAME)构建设置定义,通常与您的目标名称相同(并进行了一些标准化处理,例如删除空格)。

这是非典型的,但是如果要加载的类在当前模块中,并且您在编译时不知道模块名称,例如因为代码被编译为多个目标的一部分,则可以动态查找包名称, 通常
对应于模块名称:

let moduleName = Bundle.main.infoDictionary!["CFBundleName"] as! Stringlet personClass: AnyClass? = NSClassFromString(moduleName + "." + "Person")

但是我不建议您这样做,除非您在编译时真的不知道。

有关更多信息,请参见 将Swift
与可可和Objective-C一起使用 带有Objective-C
API的类名

AngularJS $ cookies.get()始终返回未定义

AngularJS $ cookies.get()始终返回未定义

我正在使用AngularJS 1.4.0和$cookies服务。以下代码将始终打印出一个空对象:

(function() {
    var app = angular.module("user-cookies-service",[]);

    app.service('UserCookiesService',["$cookies",function($cookies) {
        $cookies.put("Hello","World");
        console.log($cookies.getAll());
    }]);
})();

我试过了:

  • 使用AngulerJS 1.3.15,并且$cookieStore在刷新浏览器时cookie不会持久存在(但至少会创建cookie)。
  • 添加有效期。
  • 确保在我的浏览器(Chrome)中启用了Cookie。
  • 尝试使用普通的旧JS,但仍然无法正常工作。

我在任何地方都找不到类似的问题。

谢谢。

c# – MonoTouch NSClassFromString

c# – MonoTouch NSClassFromString

我正在尝试使用MonoTouch中的以下Objective-C代码:

if(NSClassFromString(@“ADBannerView”))

C#中的等价物是什么?

基本上我想要使用iAd,但我需要检查ADBannerView和ADInterstitialAd是否存在,因为它们并非在所有版本的操作系统上都可用. (而且我宁愿做功能检查而不是iOS版本检查)

我认为这在其他情况下也会有所帮助.

解决方法

最近的MonoTouch将始终提供ADBannerView,因此您无法使用C#等效的Type.GetType来查询可用性.

通常,版本检查是检查功能的最佳方法.例如.

bool available = UIDevice.CurrentDevice.CheckSystemVersion (4,0);

对于任何4.0版本的iOS(4.0,当ADBannerView添加到iOS时)将返回true.

一种可能的替代方法(可能在每种情况下都不起作用)是创建一个实例并检查它的句柄.由于ObjC是基于消息的发送,init将返回null(.NET构造函数无法做到的事情).例如.

bool available = (new ADBannerView ().Handle != IntPtr.Zero);

请注意,您可能最好使用处理视图或将其集成到ADBannerView的正常创建中.

更新:当然,对NSClassFromString的p / invoke与ObjectiveC代码完全相同:-)

codeigniter db-> delete()始终返回true吗?

codeigniter db-> delete()始终返回true吗?

我已经显示了带有记录和“删除”图像的表格。在删除图像上单击我正在使用ajax删除记录。如果我删除ID =
40的记录,则假定存在三个ID为40、41、42的记录,响应返回“ 1”并删除记录,下一次,如果我再次单击“删除图像”,它将再次返回“ 1”。

codeigniters db-> delete()方法始终返回“ 1”吗?我是否需要手动检查记录是否存在,然后继续删除?以下是我的代码iin
ajax.php

$res = $this->db->delete(tbl_user_groups, array(''owner_id'' => $admin,''user_group_id''=>$gid));if($res) echo json_encode (array("success"=>"true"));else     echo json_encode (array("success"=>"false"));

答案1

小编典典

DB- > delete()的返回TRUE,如果删除操作是成功的。仅FALSE当它不能删除该行时才返回。我认为您应该检查以下内容:

$this->db->affected_rows();

它返回数字而不是布尔值,您可以使用If条件进行检查。

dateFromString对于某些值返回nil

dateFromString对于某些值返回nil

nil在使用时dateFromString,我正在获取一些价值swift。我搜寻了很多,但徒劳无功。

以下是我的代码:

let strDate = self.sortedDict.valueForKey("TIME").objectAtIndex(indexPath.row).objectAtIndex(0) as? String        print(strDate);        let st_date = frmt.dateFromString(strDate!)        let frmt1:NSDateFormatter = NSDateFormatter()        frmt1.locale = NSLocale(localeIdentifier: localeStr)        frmt1.dateFormat = "MMM, dd yyyy hh:mm a"        if st_date != nil {            print(st_date)}

输出控制台:

    Optional("September, 20 2015 10:00:00")Optional(2015-09-20 10:00:00 +0000)Optional("October, 04 2015 10:00:00")Optional(2015-10-04 10:00:00 +0000)Optional("October, 04 2015 14:00:00") // nilOptional("October, 18 2015 15:00:00") // nilOptional("September, 20 2015 14:00:00") // nilOptional("September, 27 2015 10:00:00")Optional(2015-09-27 10:00:00 +0000)Optional("September, 27 2015 12:00:00")Optional(2015-09-27 00:00:00 +0000)Optional("September, 27 2015 14:00:00")Optional("October, 03 2015 14:00:00") //nilOptional("October, 03 2015 16:00:00") //nil

所有日期字符串的格式都是相同的,但对于几个值我还是没有。为什么这样?请帮忙。我哪里错了?

答案1

小编典典

格式应该是24小时的 HH ,即使您只获得12小时的值。

frmt1.dateFormat = "MMM, dd yyyy HH:mm a"

今天关于NSClassFromString始终返回nil的讲解已经结束,谢谢您的阅读,如果想了解更多关于AngularJS $ cookies.get()始终返回未定义、c# – MonoTouch NSClassFromString、codeigniter db-> delete()始终返回true吗?、dateFromString对于某些值返回nil的相关知识,请在本站搜索。

本文标签: