Story BoardではUser Defined Runtime Attributesを用いて独自プロパティを設定することができます。
このとき、+ボタンで追加されるプロパティは初期状態ではkeyPath:Boolean = true
という値になっているかと思いますが、この値は意味のない値になります。
iOS8ではUser Defined Runtime Attributesに無意味な値を入れても問題ないのですが、iOS7では無意味な値が入っているとクラッシュしてしまいます。
もしNSUnknownKeyException
というエラーでクラッシュした場合はこれを疑ってみるといいでしょう。
エラーメッセージはたとえば以下の様なものになります。
Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<TestProject.TestButton 0x7ae7d860> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key keyPath.' *** First throw call stack: ( 0 CoreFoundation 0x034eb1e4 __exceptionPreprocess + 180 1 libobjc.A.dylib 0x037708e5 objc_exception_throw + 44 2 CoreFoundation 0x0357afe1 -[NSException raise] + 17 3 Foundation 0x011c7d9e -[NSObject(NSKeyValueCoding) setValue:forUndefinedKey:] + 282 4 Foundation 0x011341d7 _NSSetUsingKeyValueSetter + 88 5 Foundation 0x01133731 -[NSObject(NSKeyValueCoding) setValue:forKey:] + 267 6 UIKit 0x01e53508 -[UIView(CALayerDelegate) setValue:forKey:] + 168 7 Foundation 0x01195b0a -[NSObject(NSKeyValueCoding) setValue:forKeyPath:] + 412 8 UIKit 0x02392864 -[UINibKeyValuePair apply] + 70 9 libobjc.A.dylib 0x037827de -[NSObject performSelector:] + 62 10 CoreFoundation 0x034e676a -[NSArray makeObjectsPerformSelector:] + 314 11 UIKit 0x02099d31 -[UINib instantiateWithOwner:options:] + 1389 12 UIKit 0x01ed0db0 -[UITableView _dequeueReusableViewOfType:withIdentifier:] + 370 ......