小编ian*_*675的帖子

如何设置UITableViewCell的配件颜色?

我想将配件视图图标设置为白色,类似于图标在黑色TabBar中自动着色为白色,但对我来说,如何做到这一点并不是很明显.有任何人对此有经验吗?

iphone ios

29
推荐指数
5
解决办法
3万
查看次数

类方法有自己的东西吗?

我试图在Obj-C中编写一个ActiveRecord-esque位代码,并遇到以下情况:我试图在基类中创建一个静态类变量,它获取继承类的名称并转换为表名使用复数和一些其他格式化操作.我知道对于一个类的实例,可以按照以下方式执行某些操作:

tableName = [[[self class] description] stringToTableName];
Run Code Online (Sandbox Code Playgroud)

但是,这需要使用一个self.可以沿着以下几行做点什么吗?

tableName = [[[inheriting_class class] description] stringToTableName];
Run Code Online (Sandbox Code Playgroud)

我只是不想为每个继承的类对象实例重新计算表名.我也更喜欢让这些代码用ruby风格的元编程自动生成表名.

metaprogramming objective-c

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

是否可以将块定义为类的成员?

我正在尝试在Objective-C中实现一个非常简单的策略类,它允许在内联定义策略而不是通过继承定义策略.目前我的代码如下所示:

@interface SSTaskStrategy : NSObject {
    (NSArray *)(^strategy)(void);
}

@end
Run Code Online (Sandbox Code Playgroud)

我认为这会奏效,但我收到了错误

在'('标记之前'的预期说明符限定符列表

任何想法如何使这项工作?

objective-c objective-c-blocks

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

GHC泛型行为在GHCi中似乎有所不同

我一直试图对数据类型进行一些抽象,我遇到了GHC的泛型的情况似乎有点奇怪.这是我的基本声明集:

class GFields f where
    gfields :: f a -> [String]

instance (GFields c) => GFields (D1 i c) where
    gfields = gfields . unM1

instance (GFields fs) => GFields (C1 i fs) where
    gfields = gfields . unM1

instance (GFields f, GFields fs) => GFields (f :*: fs) where
    gfields (f :*: fs) = gfields f ++ gfields fs

instance (Selector s) => GFields (S1 s r) where
    gfields = (:[]) . selName

data Thing = Thing { foo …
Run Code Online (Sandbox Code Playgroud)

generics haskell ghc ghci

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

有没有办法从NSDictionary自动构造一个对象?

我正在构建一个通过JSON与外部服务器通信的iPhone应用程序.我正在使用的JSON库将服务器的响应字符串解析为字典.目前我有一个方法,我写的只是使用硬编码字符串作为我编写的构造函数中字典的键initWithDictionary:(NSDictionary *)dic(例如self.name = [dic valueForKey:@"name"];.是否有一些聪明的惯用Objective-C方法来做到这一点?

iphone objective-c ios

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

jQuery UI选项卡:不匹配的片段标识符

我正在尝试使用jQuery(UI),Haml和Rails创建约会调度程序.我将在接下来的4周制作一套标签.

#schedule
  %ul
    - @schedule.each_index do |i|
      %li
        %a{:href => "#schedule-#{i}"} #{@schedule[i][:week_range]}
  - @schedule.each_index do |i|
    %div{:id => "#schedule-#{i}"}
      %p test
Run Code Online (Sandbox Code Playgroud)

理想情况下,这将创建一组选项卡,例如(12月27日 - 1月N日)作为选项卡标题,然后在每个框中进行"测试".

在applications.js我有:

$('#schedule').tabs();
Run Code Online (Sandbox Code Playgroud)

但是,这不能正确呈现,当我单击选项卡时,它会在javascript控制台中给出这个错误:

jQuery UI Tabs: Mismatching fragment identifier.
Run Code Online (Sandbox Code Playgroud)

我正在使用最新的jQuery和jQuery UI版本.

谁能告诉我我做错了什么?

这是相应的HTML的样子:

<div id='schedule'>
    <ul>
        <li>
            <a href='#schedule-0'> December 27 - January 2</a>
        </li>
        <li>
            <a href='#schedule-1'> January 3 - January 9</a>
        </li>
        <li>
            <a href='#schedule-2'> January 10 - January 16</a>
        </li>
        <li>
            <a href='#schedule-3'> January 17 - January 23</a>
        </li>
    </ul>
    <div id='#schedule-0'>
        <p>test</p> …
Run Code Online (Sandbox Code Playgroud)

jquery haml jquery-ui ruby-on-rails

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

NSMutableData对象无法识别选择器?

我正在尝试为我正在开发的网站编写一个iPhone伴侣.我试图通过使控制器成为NSURLConnection的委托来从我的网站获取JSON数据.这是问题,我有一个名为responseData的NSMutableData对象,如下所示:

responseData = [NSMutableData dataWithLength:0];
Run Code Online (Sandbox Code Playgroud)

我希望附加数据:

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
    [responseData appendData:data];
}
Run Code Online (Sandbox Code Playgroud)

但是,这会导致我的应用程序崩溃并在控制台中说:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', 
reason: '-[__NSCFArray appendData:]: unrecognized selector sent to instance 
0x6d0a640'
Run Code Online (Sandbox Code Playgroud)

我非常有信心应该识别appendData,所以我不知道这里的问题是什么......

iphone objective-c

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

为什么这个指令中的所有键绑定都被最后一个覆盖?

我正在尝试创建一个将特定按键绑定到控制器范围中指定的函数的指令,但所有回调函数似乎都被包含绑定的对象中的最后一个回调函数覆盖.我已经尝试使用keymaster.js和mousetrap.js来绑定具有相同结果的事件.

JSFiddle中的代码

Javascript代码:

angular.module('app', ['directives', 'controllers']);

angular.module('directives', [])
.directive('keypress', [function () {
    return function (scope, element, attrs) {
        // console.log(scope, element, attrs);
        var attribute = scope.$eval(attrs.keypress || '{}');
        for (var k in attribute) {
            console.log('binding ' + k + ' as ' + attribute[k]);
            Mousetrap.bind(k, function() { return attribute[k](scope, element); });
        }
    };
}]);

angular.module('controllers', [])
.controller('TodoController', function($scope) {
    $scope.shortcuts = {
        'w': function () { console.log('w'); },
        's': function () { console.log('s'); },
        'a': function () { console.log('a'); }, …
Run Code Online (Sandbox Code Playgroud)

javascript angularjs

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